URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
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;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.