URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [eh/] [ia64-2.C] - Rev 693
Compare with Previous | Blame | View Log
// PR target/30230// This testcase failed on IA-64, where end of an EH region ended// in the middle of a bundle (with br.call insn in first or second// slot of .bbb/.mbb bundles and EH region end right after it).// But br.call returns to the start of the next bundlem so during// unwinding the call was considered to be outside of the EH region// while it should have been inside.// { dg-do run }// { dg-require-weak "" }// { dg-options "-O2" }struct A {};struct B { virtual ~B(); };B::~B () {}struct C { void foo (short &, B &); };struct D { void *d1; C *d2; virtual void virt (void) {} };struct E { D *e1; B *e2; };struct F { void bar (void *, B &); };F *p __attribute__((weak));volatile int r;void C::foo (short &x, B &){if (r)throw A ();x = 1;}void F::bar (void *, B &){throw A ();}void baz (E &x){short g = 0;B b = *x.e2;x.e1->d2->foo (g, b);if (g)p->bar(x.e1->d1, b);}int main (){F g;D s;E h;p = &g;h.e1 = &s;try{baz (h);}catch (A &){}return 0;}
