1 // RUN: %clang %s -fsyntax-only -fblocks -fbracket-depth=512 2 // RUN: not %clang %s -fsyntax-only -fblocks -fbracket-depth=512 -DFAIL 2>&1 | FileCheck %s 3 4 template <class T> int foo(T &&t); 5 6 void bar(int x = foo( 7 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 8 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 9 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 10 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 11 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 12 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 13 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 14 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 15 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 16 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 17 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 18 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 19 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 20 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 21 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 22 23 ^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo(^(int x = foo( 24 25 #ifdef FAIL 26 ^(int x = foo( 27 #endif 28 29 ^(int x = foo(1)){} 30 31 #ifdef FAIL 32 )){} 33 #endif 34 35 )){})){})){})){})){})){} 36 37 )){})){})){})){})){})){})){})){} 38 )){})){})){})){})){})){})){})){} 39 )){})){})){})){})){})){})){})){} 40 )){})){})){})){})){})){})){})){} 41 )){})){})){})){})){})){})){})){} 42 )){})){})){})){})){})){})){})){} 43 )){})){})){})){})){})){})){})){} 44 )){})){})){})){})){})){})){})){} 45 )){})){})){})){})){})){})){})){} 46 )){})){})){})){})){})){})){})){} 47 )){})){})){})){})){})){})){})){} 48 )){})){})){})){})){})){})){})){} 49 )){})){})){})){})){})){})){})){} 50 )){})){})){})){})){})){})){})){} 51 )){})){})){})){})){})){})){})){} 52 )); 53 54 // CHECK: fatal error: function scope depth exceeded maximum of 127 55