diff options
Diffstat (limited to 'test/SemaCXX/pseudo-destructors.cpp')
-rw-r--r-- | test/SemaCXX/pseudo-destructors.cpp | 13 |
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}} +} |