// { dg-do run } // { dg-options "-fsanitize=vptr" } struct S { S() : a(0) {} ~S() {} int a; int f() { return 0; } virtual int v() { return 0; } }; struct T : S { T() : b(0) {} int b; int g() { return 0; } virtual int v() { return 1; } }; T * foo (S *p) { return (T *) p; } int main () { if (foo (__null) != __null) __builtin_abort (); }