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 run }
|
// { dg-do run }
|
// Copyright (C) 1999 Free Software Foundation
|
// Copyright (C) 1999 Free Software Foundation
|
|
|
// by Alexandre Oliva
|
// by Alexandre Oliva
|
|
|
// Test whether dtors of vbases are called on throw within new[].
|
// Test whether dtors of vbases are called on throw within new[].
|
// Variant of delete2.C.
|
// Variant of delete2.C.
|
|
|
extern "C" void abort();
|
extern "C" void abort();
|
extern "C" void exit(int);
|
extern "C" void exit(int);
|
|
|
struct Foo {
|
struct Foo {
|
static bool first;
|
static bool first;
|
|
|
Foo() {
|
Foo() {
|
if (first)
|
if (first)
|
first = false;
|
first = false;
|
else
|
else
|
throw first;
|
throw first;
|
}
|
}
|
|
|
~Foo() {
|
~Foo() {
|
exit(0);
|
exit(0);
|
}
|
}
|
};
|
};
|
|
|
bool Foo::first = true;
|
bool Foo::first = true;
|
|
|
struct Bar : virtual Foo {
|
struct Bar : virtual Foo {
|
};
|
};
|
|
|
int main() {
|
int main() {
|
try {
|
try {
|
delete [] new Bar[2];
|
delete [] new Bar[2];
|
} catch (...) {
|
} catch (...) {
|
}
|
}
|
abort();
|
abort();
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.