annotate gcc/testsuite/gcc.dg/pr59920-2.c @ 138:fc828634a951

merge
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 08 Nov 2018 14:17:14 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR tree-optimization/59920 */
kono
parents:
diff changeset
2 /* { dg-do compile } */
kono
parents:
diff changeset
3 /* { dg-options "-O0" } */
kono
parents:
diff changeset
4 /* { dg-require-effective-target label_values } */
kono
parents:
diff changeset
5 /* { dg-require-effective-target indirect_jumps } */
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 void *bar (void **);
kono
parents:
diff changeset
8 void *baz (int, void **);
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 #define A(n) \
kono
parents:
diff changeset
11 { __label__ l1_##n, l2_##n, l3_##n; \
kono
parents:
diff changeset
12 static void *a[] = { &&l1_##n, &&l2_##n, &&l3_##n };\
kono
parents:
diff changeset
13 void *b = bar (a); \
kono
parents:
diff changeset
14 goto *b; \
kono
parents:
diff changeset
15 l1_##n: \
kono
parents:
diff changeset
16 b = baz (1, a); \
kono
parents:
diff changeset
17 goto *b; \
kono
parents:
diff changeset
18 l2_##n: \
kono
parents:
diff changeset
19 b = baz (2, a); \
kono
parents:
diff changeset
20 goto *b; \
kono
parents:
diff changeset
21 l3_##n:; \
kono
parents:
diff changeset
22 }
kono
parents:
diff changeset
23 #define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
kono
parents:
diff changeset
24 A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
kono
parents:
diff changeset
25 #define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
kono
parents:
diff changeset
26 B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 void
kono
parents:
diff changeset
29 foo (void)
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 C(1)
kono
parents:
diff changeset
32 }