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