Index: test/CodeGenCXX/sanitize-dtor-generated.cpp =================================================================== --- /dev/null +++ test/CodeGenCXX/sanitize-dtor-generated.cpp @@ -0,0 +1,32 @@ +// Test -fsanitize-memory-use-after-dtor +// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-optzns -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-optzns -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s + +// TODO Success pending on resolution of issue 596 +// XFAIL: * + +template class Vector { + public: + int size; + ~Vector() {} +}; + +struct NonTrivial { + int a; + Vector v; +}; +NonTrivial nt; + +struct Trivial { + int a; + int b; +}; +Trivial t; + +// CHECK-LABEL: define {{.*}}NonTrivialD2Ev +// CHECK: call void @__sanitizer_dtor_callback +// CHECK: ret void + +// CHECK-LABEL: define {{.*}}TrivialD2Ev +// CHECK: call void @__sanitizer_dtor_callback +// CHECK: ret void