aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/cxx1y-generic-lambdas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaCXX/cxx1y-generic-lambdas.cpp')
-rw-r--r--test/SemaCXX/cxx1y-generic-lambdas.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/SemaCXX/cxx1y-generic-lambdas.cpp b/test/SemaCXX/cxx1y-generic-lambdas.cpp
index b49a6418ea85..c937c6728c2b 100644
--- a/test/SemaCXX/cxx1y-generic-lambdas.cpp
+++ b/test/SemaCXX/cxx1y-generic-lambdas.cpp
@@ -948,3 +948,41 @@ auto f(T x) {
auto x = f(0)();
}
+
+namespace PR13987 {
+class Enclosing {
+ void Method(char c = []()->char {
+ int d = [](auto x)->int {
+ struct LocalClass {
+ int Method() { return 0; }
+ };
+ return 0;
+ }(0);
+ return d; }()
+ );
+};
+
+class Enclosing2 {
+ void Method(char c = [](auto x)->char {
+ int d = []()->int {
+ struct LocalClass {
+ int Method() { return 0; }
+ };
+ return 0;
+ }();
+ return d; }(0)
+ );
+};
+
+class Enclosing3 {
+ void Method(char c = [](auto x)->char {
+ int d = [](auto y)->int {
+ struct LocalClass {
+ int Method() { return 0; }
+ };
+ return 0;
+ }(0);
+ return d; }(0)
+ );
+};
+}