libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / pr96482.c
blob68ead798d280f9f547ec4d2745bed68cbf8f5e75
1 /* PR ipa/96482 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -flto" } */
4 /* { dg-require-effective-target lto } */
6 int
7 __attribute__((noinline))
8 foo(int arg)
10 if (arg == 3)
11 return 1;
12 if (arg == 4)
13 return 123;
15 __builtin_unreachable ();
18 int
19 __attribute__((noinline))
20 baz(int x)
22 if (x != 0)
23 return foo(3); /* called */
25 return 1;
28 int
29 __attribute__((noinline))
30 bar(int x)
32 if (x == 0)
33 return foo(5); /* not executed */
35 return 1;
38 int main(int argc, char **argv)
40 if (bar(argc) != baz(argc))
41 __builtin_abort ();
43 return 0;