diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-10-25 09:12:52 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-10-25 09:12:52 +0000 |
commit | 9adc361008e25f5b7d9c3aa8968832384d21c12a (patch) | |
tree | 1498f839f6d8700423dd6911d4c648ff1a551e4f /clang/test/SemaCXX/new-delete-0x.cpp | |
parent | be9cdbb58cfd35291e51291390ac845fb7156095 (diff) | |
download | bcm5719-llvm-9adc361008e25f5b7d9c3aa8968832384d21c12a.tar.gz bcm5719-llvm-9adc361008e25f5b7d9c3aa8968832384d21c12a.zip |
Sema: Do not allow lambda expressions to appear inside of constant expressions
We would previously not diagnose this which would lead to crashes (on
very strange code).
This fixes PR17675.
llvm-svn: 193397
Diffstat (limited to 'clang/test/SemaCXX/new-delete-0x.cpp')
-rw-r--r-- | clang/test/SemaCXX/new-delete-0x.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/test/SemaCXX/new-delete-0x.cpp b/clang/test/SemaCXX/new-delete-0x.cpp index 9e3b4928b14..a11392d5896 100644 --- a/clang/test/SemaCXX/new-delete-0x.cpp +++ b/clang/test/SemaCXX/new-delete-0x.cpp @@ -21,7 +21,9 @@ void bad_news(int *ip) auto s = new int*[[]{return 1;}()][2]; // expected-error {{expected ']'}} // ... but not here: auto t = new (int(*)[[]]); // expected-error {{an attribute list cannot appear here}} - auto u = new (int(*)[[]{return 1;}()][2]); // expected-error {{C++11 only allows consecutive left square brackets when introducing an attribute}} expected-error {{variably modified type}} + auto u = new (int(*)[[]{return 1;}()][2]); // expected-error {{C++11 only allows consecutive left square brackets when introducing an attribute}} \ + expected-error {{variably modified type}} \ + expected-error {{a lambda expression may not appear inside of a constant expression}} } void good_deletes() |