Clang segfaults on this case instead of diagnosing because it looks at the specialized template:
template <class T>
struct MyClass;
template<>
struct MyClass<int>
{
virtual void foo() {}
};
int main() {
MyClass<int> m; #pragma omp target map(m) {}
}