1 // Test with the flag -fno-sanitize-memory-use-after-dtor, to ensure that 2 // instrumentation is not erroneously inserted 3 // RUN: %clang_cc1 -fsanitize=memory -fno-sanitize-memory-use-after-dtor -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s 4 5 struct Simple { 6 int x; ~SimpleSimple7 ~Simple() {} 8 }; 9 Simple s; 10 // CHECK-LABEL: define {{.*}}SimpleD1Ev 11 // CHECK-NOT: call void @__sanitizer_dtor_callback 12 13 struct Inlined { 14 int x; ~InlinedInlined15 inline ~Inlined() {} 16 }; 17 Inlined i; 18 // CHECK-LABEL: define {{.*}}InlinedD1Ev 19 // CHECK-NOT: call void @__sanitizer_dtor_callback 20 21 // CHECK-LABEL: define {{.*}}SimpleD2Ev 22 // CHECK-NOT: call void @__sanitizer_dtor_callback 23 24 // CHECK-LABEL: define {{.*}}InlinedD2Ev 25 // CHECK-NOT: call void @__sanitizer_dtor_callback 26