blob: 944a27cc8cd14cc8bb5c8b36aa1780413b8110ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
volatile int x;
void __attribute__((noinline)) sink() {
x++; //% self.filecheck("bt", "main.cpp")
// CHECK-NOT: func{{[23]}}
}
void func2();
void __attribute__((noinline)) func1() {
if (x < 1)
func2();
else
sink();
}
void __attribute__((noinline)) func2() {
if (x < 1)
sink();
else
func1();
}
int main() {
// Tail recursion creates ambiguous execution histories.
x = 0;
func1();
return 0;
}
|