summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-11-09 02:19:47 +0000
committerDouglas Gregor <dgregor@apple.com>2011-11-09 02:19:47 +0000
commitf39a8dd4458c12efdec61375fec1aac5feeb9eb7 (patch)
tree366bfa4a183f95bc107f1a0ef96ac1bd688a0109 /clang/test
parentd86532ee2c12968610ebd50e2b6dde4afb7ea330 (diff)
downloadbcm5719-llvm-f39a8dd4458c12efdec61375fec1aac5feeb9eb7.tar.gz
bcm5719-llvm-f39a8dd4458c12efdec61375fec1aac5feeb9eb7.zip
Don't crash when transforming an ill-formed pseudo-destructor
expression. Fixes PR11339. llvm-svn: 144159
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/pseudo-destructors.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/pseudo-destructors.cpp b/clang/test/SemaCXX/pseudo-destructors.cpp
index d71304e28b1..bd398481751 100644
--- a/clang/test/SemaCXX/pseudo-destructors.cpp
+++ b/clang/test/SemaCXX/pseudo-destructors.cpp
@@ -68,3 +68,12 @@ void test_X0(N1::X0 &x0) {
x0.~X0();
}
+namespace PR11339 {
+ template<class T>
+ void destroy(T* p) {
+ p->~T(); // ok
+ p->~oops(); // expected-error{{expected the class name after '~' to name a destructor}}
+ }
+
+ template void destroy(int*); // expected-note{{in instantiation of function template specialization}}
+}
OpenPOWER on IntegriCloud