summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/pseudo-destructors.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-02-25 17:36:15 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-02-25 17:36:15 +0000
commitced8bdf74a4f2b67b060588a08af8e7dbb684b36 (patch)
treebe41948058ac4ea75c795c6f95e146e5ea0f711b /clang/test/SemaCXX/pseudo-destructors.cpp
parent6cd04ac9637508e996c12c88241cba18d3725cc3 (diff)
downloadbcm5719-llvm-ced8bdf74a4f2b67b060588a08af8e7dbb684b36.tar.gz
bcm5719-llvm-ced8bdf74a4f2b67b060588a08af8e7dbb684b36.zip
Sema: Parenthesized bound destructor member expressions can be called
We would wrongfully reject (a.~A)() in both the destructor and pseudo-destructor cases. This fixes PR22668. llvm-svn: 230512
Diffstat (limited to 'clang/test/SemaCXX/pseudo-destructors.cpp')
-rw-r--r--clang/test/SemaCXX/pseudo-destructors.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/test/SemaCXX/pseudo-destructors.cpp b/clang/test/SemaCXX/pseudo-destructors.cpp
index 95363e5f6ba..3971881a6b8 100644
--- a/clang/test/SemaCXX/pseudo-destructors.cpp
+++ b/clang/test/SemaCXX/pseudo-destructors.cpp
@@ -59,7 +59,11 @@ void f(A* a, Foo *f, int *i, double *d, int ii) {
typedef int Integer;
void destroy_without_call(int *ip) {
- ip->~Integer; // expected-error{{called immediately}}
+ ip->~Integer; // expected-error{{reference to pseudo-destructor must be called}}
+}
+
+void paren_destroy_with_call(int *ip) {
+ (ip->~Integer)();
}
// PR5530
OpenPOWER on IntegriCloud