ia64-2.c
来自「用于进行gcc测试」· C语言 代码 · 共 59 行
C
59 行
// 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;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?