summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/new-delete-0x.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-10-25 09:12:52 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-10-25 09:12:52 +0000
commit9adc361008e25f5b7d9c3aa8968832384d21c12a (patch)
tree1498f839f6d8700423dd6911d4c648ff1a551e4f /clang/test/SemaCXX/new-delete-0x.cpp
parentbe9cdbb58cfd35291e51291390ac845fb7156095 (diff)
downloadbcm5719-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.cpp4
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()
OpenPOWER on IntegriCloud