Mercurial > hg > CbC > CbC_gcc
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 } |