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