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)
{}}