URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
// { dg-do run }
|
// { dg-do run }
|
// check EH with templates
|
// check EH with templates
|
extern "C" void abort ();
|
extern "C" void abort ();
|
extern "C" void exit (int);
|
extern "C" void exit (int);
|
|
|
template struct A {
|
template struct A {
|
A() {}
|
A() {}
|
A(const char*) {}
|
A(const char*) {}
|
};
|
};
|
|
|
void f1()
|
void f1()
|
{
|
{
|
throw *(new A >);
|
throw *(new A >);
|
}
|
}
|
|
|
void f2()
|
void f2()
|
{
|
{
|
throw *(new A >);
|
throw *(new A >);
|
}
|
}
|
|
|
void f3()
|
void f3()
|
{
|
{
|
throw A > ("howdy");
|
throw A > ("howdy");
|
}
|
}
|
|
|
void f4()
|
void f4()
|
{
|
{
|
throw A > ("hi michey");
|
throw A > ("hi michey");
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
int flag;
|
int flag;
|
|
|
flag = 0;
|
flag = 0;
|
try {
|
try {
|
f1();
|
f1();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
abort();
|
abort();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
flag = 1;
|
flag = 1;
|
}
|
}
|
if (!flag)
|
if (!flag)
|
abort();
|
abort();
|
|
|
flag = 0;
|
flag = 0;
|
try {
|
try {
|
f2();
|
f2();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
abort();
|
abort();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
flag = 1;
|
flag = 1;
|
}
|
}
|
if (!flag)
|
if (!flag)
|
abort();
|
abort();
|
|
|
flag = 0;
|
flag = 0;
|
try {
|
try {
|
f3();
|
f3();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
abort();
|
abort();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
flag = 1;
|
flag = 1;
|
}
|
}
|
if (!flag)
|
if (!flag)
|
abort();
|
abort();
|
|
|
flag = 0;
|
flag = 0;
|
try {
|
try {
|
f4();
|
f4();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
abort();
|
abort();
|
}
|
}
|
catch (A >) {
|
catch (A >) {
|
flag = 1;
|
flag = 1;
|
}
|
}
|
if (!flag)
|
if (!flag)
|
abort();
|
abort();
|
|
|
exit(0);
|
exit(0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.