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