diff options
| author | Faisal Vali <faisalv@yahoo.com> | 2013-09-29 20:00:15 +0000 |
|---|---|---|
| committer | Faisal Vali <faisalv@yahoo.com> | 2013-09-29 20:00:15 +0000 |
| commit | db29268b10a99e56d9daeacf0cf4ce563b3bed92 (patch) | |
| tree | b9d39d76f420eac7f1f5f77be209f2ccce4d4088 /clang/test/SemaCXX/lambda-expressions.cpp | |
| parent | 155c9d5d97385499f0b5edc4260ec2cf1f724d9b (diff) | |
| download | bcm5719-llvm-db29268b10a99e56d9daeacf0cf4ce563b3bed92.tar.gz bcm5719-llvm-db29268b10a99e56d9daeacf0cf4ce563b3bed92.zip | |
Fix computation of linkage within nested lambdas.
When nested lambdas are used in NSDMI's - this prevents infinite recursion.
See http://llvm-reviews.chandlerc.com/D1783 for Doug's approval regarding the code, and then request for some tests.
[On a related note, I need this patch so as to pass tests of transformations of nested lambdas returned from member functions]
llvm-svn: 191645
Diffstat (limited to 'clang/test/SemaCXX/lambda-expressions.cpp')
| -rw-r--r-- | clang/test/SemaCXX/lambda-expressions.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/lambda-expressions.cpp b/clang/test/SemaCXX/lambda-expressions.cpp index e8e2eb612a0..e2904247c4b 100644 --- a/clang/test/SemaCXX/lambda-expressions.cpp +++ b/clang/test/SemaCXX/lambda-expressions.cpp @@ -265,3 +265,21 @@ namespace TypeDeduction { #endif } } + + +namespace lambdas_in_NSDMIs { + template<class T> + struct L { + T t{}; + T t2 = ([](int a) { return [](int b) { return b; };})(t)(t); + }; + L<int> l; + + namespace non_template { + struct L { + int t = 0; + int t2 = ([](int a) { return [](int b) { return b; };})(t)(t); + }; + L l; + } +}
\ No newline at end of file |

