1// Expect 1 errors (with f_one(int), f_two, f_three in cycle) 2 3// Complex recursion spanning several functions with overloads, etc. 4 5void f_one(bool b); 6void f_one(int n); 7void f_two(int n); 8void f_three(int n); 9void f_four(int n); 10 11void f_one(bool b) { 12 int n = b ? 1 : 0; 13 f_one(n); 14} 15 16void f_one(int n) { 17 if (n > 0) { 18 f_four(n); 19 } else { 20 f_two(n); 21 } 22} 23 24void f_two(int n) { 25 for (int i = 0; i < 4; ++i) { 26 f_three(n); 27 } 28} 29 30void f_three(int n) { 31 f_one(n); 32} 33 34void f_four(int n) {} 35 36/*%%* 37potential recursion (function call cycle) not allowed: 38 void f_one(int n) 39 void f_two(int n) 40 void f_three(int n) 41 void f_one(int n) 42*%%*/ 43