1 // RUN: %clang %s -fsyntax-only -fbracket-depth=512 2 // RUN: not %clang %s -fsyntax-only -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 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 [](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( 23 24 [](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( 25 26 #ifdef FAIL 27 [](int x = foo( 28 #endif 29 30 [](int x = foo(1)){} 31 32 #ifdef FAIL 33 )){} 34 #endif 35 36 )){})){})){})){})){})){} 37 38 )){})){})){})){})){})){})){})){} 39 )){})){})){})){})){})){})){})){} 40 )){})){})){})){})){})){})){})){} 41 )){})){})){})){})){})){})){})){} 42 )){})){})){})){})){})){})){})){} 43 )){})){})){})){})){})){})){})){} 44 )){})){})){})){})){})){})){})){} 45 )){})){})){})){})){})){})){})){} 46 )){})){})){})){})){})){})){})){} 47 )){})){})){})){})){})){})){})){} 48 )){})){})){})){})){})){})){})){} 49 )){})){})){})){})){})){})){})){} 50 )){})){})){})){})){})){})){})){} 51 )){})){})){})){})){})){})){})){} 52 )){})){})){})){})){})){})){})){} 53 )); 54 55 // CHECK: fatal error: function scope depth exceeded maximum of 127 56