diff options
Diffstat (limited to 'clang/test/SemaCXX/lambda-expressions.cpp')
-rw-r--r-- | clang/test/SemaCXX/lambda-expressions.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/clang/test/SemaCXX/lambda-expressions.cpp b/clang/test/SemaCXX/lambda-expressions.cpp index e2904247c4b..51e43216dea 100644 --- a/clang/test/SemaCXX/lambda-expressions.cpp +++ b/clang/test/SemaCXX/lambda-expressions.cpp @@ -282,4 +282,15 @@ namespace lambdas_in_NSDMIs { }; L l; } -}
\ No newline at end of file +} + +// PR18477: don't try to capture 'this' from an NSDMI encountered while parsing +// a lambda. +namespace NSDMIs_in_lambdas { + template<typename T> struct S { int a = 0; int b = a; }; + void f() { []() { S<int> s; }; } + + auto x = []{ struct S { int n, m = n; }; }; + auto y = [&]{ struct S { int n, m = n; }; }; + void g() { auto z = [&]{ struct S { int n, m = n; }; }; } +} |