We'd attempted to allow this, but turns out we were doing a very bad
job. :)
Making this work properly would be a giant change in clang. For
example, we'd need to make CXXRecordDecl::getDestructor()
context-sensitive, because the destructor you end up with depends on
where you're calling it from.
For now (and hopefully for ever), just disallow overloading of
destructors in CUDA.
I feel like we should exit early on destructors here, before we do any target checks. The assert also feels kind of trivial because we only come into this overload machinery if looking up New's DeclarationName found Old.