OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.law/] [except5.C] - Diff between revs 305 and 338

Only display areas with differences | Details | Blame | View Log

Rev 305 Rev 338
// { dg-do assemble  }
// { dg-do assemble  }
// { dg-options "-fexceptions" }
// { dg-options "-fexceptions" }
// GROUPS passed exceptions
// GROUPS passed exceptions
// except file
// except file
// Message-Id: <199311101607.AA11803@hsi86.hsi.com>
// Message-Id: <199311101607.AA11803@hsi86.hsi.com>
// From: Grigory Tsipenyuk 
// From: Grigory Tsipenyuk 
// Subject: exception's bug?
// Subject: exception's bug?
// Date: Wed, 10 Nov 1993 11:07:12 -0500
// Date: Wed, 10 Nov 1993 11:07:12 -0500
#include 
#include 
class X {
class X {
        int     *a;
        int     *a;
        int     sz;
        int     sz;
public:
public:
        class range { }; // exception class
        class range { }; // exception class
        X(int s)        { a=new int[sz=s]; }
        X(int s)        { a=new int[sz=s]; }
        int& operator[](int i);
        int& operator[](int i);
};
};
int& X::operator[](int i)
int& X::operator[](int i)
{
{
        if (i < 0 || i >= sz) {
        if (i < 0 || i >= sz) {
                throw range();
                throw range();
        }
        }
        return a[i];
        return a[i];
}
}
int
int
main()
main()
{
{
        X       c(10);
        X       c(10);
        try {
        try {
                for (int i = 0; i < 12; i++)
                for (int i = 0; i < 12; i++)
                        c[i] = 1;
                        c[i] = 1;
        } catch (X::range) {
        } catch (X::range) {
                std::cerr << "invalid range\n";
                std::cerr << "invalid range\n";
        }
        }
        return 0;
        return 0;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.