comparison gcc/testsuite/gcc.dg/funcorder.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -funit-at-a-time" } */
3 /* { dg-final { scan-assembler-not "link_error" } } */
4 /* In unit-at-time the functions should be assembled in order
5 e q t main, so we realize that they are pure. */
6
7 void link_error (void);
8 static int mem;
9 static int e(void) __attribute__ ((noinline));
10 static int q(void) __attribute__ ((noinline));
11 static int t(void) __attribute__ ((noinline));
12 int
13 main()
14 {
15 return t();
16 }
17 static int t()
18 {
19 int r,e;
20 if (mem)
21 t();
22 e=mem;
23 r=q();
24 if (e!=mem)
25 link_error();
26 return r;
27 }
28 static int e()
29 {
30 return 0;
31 }
32 static int q()
33 {
34 int t=mem,r;
35 r=e();
36 if (t!=mem)
37 link_error();
38 return r;
39 }