// 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 *&);