summaryrefslogtreecommitdiff
path: root/test/ubsan/TestCases/TypeCheck/vptr-non-unique-typeinfo.cpp
blob: 7bc19bdae8fa41798a817bf63e7ffc5ef626536e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -fPIC -shared -o %dynamiclib -DBUILD_SO %ld_flags_rpath_so
// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -O3 -o %t %ld_flags_rpath_exe
// RUN: %run %t
//
// REQUIRES: cxxabi
// UNSUPPORTED: win32

struct X {
  virtual ~X() {}
};
X *libCall();

#ifdef BUILD_SO

X *libCall() {
  return new X;
}

#else

int main() {
  X *px = libCall();
  delete px;
}

#endif