1 | volatile int x; |
---|---|
2 | |
3 | void __attribute__((noinline)) sink() { |
4 | x++; /* break here */ |
5 | } |
6 | |
7 | void __attribute__((noinline)) func3() { sink(); /* tail */ } |
8 | |
9 | void __attribute__((disable_tail_calls, noinline)) func2() { func3(); /* regular */ } |
10 | |
11 | void __attribute__((noinline)) func1() { func2(); /* tail */ } |
12 | |
13 | int __attribute__((disable_tail_calls)) main() { |
14 | func1(); /* regular */ |
15 | return 0; |
16 | } |
17 |