[PR c++/84702] ICE with default tmpl arg of overload set
[official-gcc.git] / gcc / testsuite / g++.dg / ext / label3.C
blob71188993da222b9639f7a12608ae8ec797f6b0f9
1 // Bug: we were removing the p = q assignment in dce, and then reinserting
2 // it *after* the try/catch in out-of-ssa.  Oops.
4 // testcase reduced from libjava/interpret.cc.
6 // { dg-do run }
7 // { dg-options "-O2" }
8 // { dg-require-effective-target indirect_jumps }
10 extern "C" int printf (const char *, ...);
12 bool b;
14 int main()
16   __label__ one, two, done;
17   void *labs[] = { &&one, &&two, &&done };
18   const void **q = (const void **)labs;
19   const void **p = q;
21   try
22     {
23     one:
24       printf ("one!\n");
25       if (b)
26         throw 42;
27       goto **p++;
29     two:
30       printf ("two!\n");
31       goto **p++;
33     done:
34       printf ("done!\n");
35     }
36   catch (int)
37     {
38       printf ("caught!\n");
39     }