xref: /llvm-project/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-non-unique-typeinfo.cpp (revision 8a220b229e86f42088a25424030b7b0b2bfb90c7)
1 // RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -fPIC -shared -o %dynamiclib -DBUILD_SO %ld_flags_rpath_so
2 // RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -O3 -o %t %ld_flags_rpath_exe
3 // RUN: %run %t
4 //
5 // REQUIRES: cxxabi
6 // FIXME: Should pass on Android, but started failing around 2023-11-05 for unknown reasons.
7 // UNSUPPORTED: target={{.*(windows|android).*}}
8 
9 struct X {
~XX10   virtual ~X() {}
11 };
12 X *libCall();
13 
14 #ifdef BUILD_SO
15 
libCall()16 X *libCall() {
17   return new X;
18 }
19 
20 #else
21 
main()22 int main() {
23   X *px = libCall();
24   delete px;
25 }
26 
27 #endif
28