aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/pseudo-destructors.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaCXX/pseudo-destructors.cpp')
-rw-r--r--test/SemaCXX/pseudo-destructors.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/SemaCXX/pseudo-destructors.cpp b/test/SemaCXX/pseudo-destructors.cpp
new file mode 100644
index 0000000000..8c41f2266d
--- /dev/null
+++ b/test/SemaCXX/pseudo-destructors.cpp
@@ -0,0 +1,13 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+struct A {};
+
+enum Foo { F };
+typedef Foo Bar;
+
+void f(A* a) {
+ a->~A();
+ a->A::~A();
+
+ a->~foo(); // expected-error{{identifier 'foo' in pseudo-destructor expression does not name a type}}
+ a->~Bar(); // expected-error{{type 'Bar' (aka 'enum Foo') in pseudo-destructor expression is not a class type}}
+}