diff options
Diffstat (limited to 'clang/test/SemaObjCXX/pseudo-destructor.mm')
-rw-r--r-- | clang/test/SemaObjCXX/pseudo-destructor.mm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/SemaObjCXX/pseudo-destructor.mm b/clang/test/SemaObjCXX/pseudo-destructor.mm new file mode 100644 index 00000000000..06570c16b67 --- /dev/null +++ b/clang/test/SemaObjCXX/pseudo-destructor.mm @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +// expected-no-diagnostics + +__attribute__((objc_root_class)) +@interface Root +@end + +@class Forward; + +template <class T> void destroyPointer(T *t) { + t->~T(); +} + +template <class T> void destroyReference(T &t) { + t.~T(); +} + +template void destroyPointer<Root*>(Root **); +template void destroyReference<Root*>(Root *&); + +// rdar://18522255 +template void destroyPointer<Forward*>(Forward **); +template void destroyReference<Forward*>(Forward *&); |