diff options
author | Mark de Wever <koraq@xs4all.nl> | 2019-11-09 15:32:35 +0100 |
---|---|---|
committer | Mark de Wever <koraq@xs4all.nl> | 2019-11-09 15:33:01 +0100 |
commit | b9be5ce8f3e0e697a61ad16e2c669de6ea8f8739 (patch) | |
tree | 76ba44970aae6ffa41eeb9213aab819d7e96d3aa /clang/test/Parser/nested_lambda_overflow.cpp | |
parent | 56b5eab12970e540c629e9b9a8a95256c116a547 (diff) | |
download | bcm5719-llvm-b9be5ce8f3e0e697a61ad16e2c669de6ea8f8739.tar.gz bcm5719-llvm-b9be5ce8f3e0e697a61ad16e2c669de6ea8f8739.zip |
[Parser] Warn when ScopeDepthOrObjCQuals overflows
Before when the overflow occured an assertion was triggered. Now check
whether the maximum has been reached and warn properly.
This patch fixes the original submission of PR19607.
Differential Revision: https://reviews.llvm.org/D63975
Diffstat (limited to 'clang/test/Parser/nested_lambda_overflow.cpp')
-rw-r--r-- | clang/test/Parser/nested_lambda_overflow.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/clang/test/Parser/nested_lambda_overflow.cpp b/clang/test/Parser/nested_lambda_overflow.cpp new file mode 100644 index 00000000000..afaa9dca635 --- /dev/null +++ b/clang/test/Parser/nested_lambda_overflow.cpp @@ -0,0 +1,55 @@ +// RUN: %clang %s -fsyntax-only -fbracket-depth=512 +// RUN: not %clang %s -fsyntax-only -fbracket-depth=512 -DFAIL 2>&1 | FileCheck %s + +template <class T> int foo(T &&t); + +void bar(int x = foo( + +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( + +[](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo([](int x = foo( + +#ifdef FAIL +[](int x = foo( +#endif + +[](int x = foo(1)){} + +#ifdef FAIL +)){} +#endif + +)){})){})){})){})){})){} + +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)){})){})){})){})){})){})){})){} +)); + +// CHECK: fatal error: function scope depth exceeded maximum of 127 |