Author: Vitaly Buka Date: 2022-08-28T22:43:04-07:00 New Revision: b31b72ad7ed9b75c55771caf1176b989642964eb
URL: https://github.com/llvm/llvm-project/commit/b31b72ad7ed9b75c55771caf1176b989642964eb DIFF: https://github.com/llvm/llvm-project/commit/b31b72ad7ed9b75c55771caf1176b989642964eb.diff LOG: [test][msan] Simplify tests with --implicit-check-not Added: Modified: clang/test/CodeGenCXX/sanitize-dtor-bit-field.cpp clang/test/CodeGenCXX/sanitize-dtor-callback.cpp clang/test/CodeGenCXX/sanitize-dtor-derived-class.cpp clang/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp clang/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp clang/test/CodeGenCXX/sanitize-dtor-trivial-base.cpp clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp clang/test/CodeGenCXX/sanitize-dtor-vtable.cpp clang/test/CodeGenCXX/sanitize-no-dtor-callback.cpp Removed: ################################################################################ diff --git a/clang/test/CodeGenCXX/sanitize-dtor-bit-field.cpp b/clang/test/CodeGenCXX/sanitize-dtor-bit-field.cpp index 19c46ba64a988..dc84db8793284 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-bit-field.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-bit-field.cpp @@ -1,6 +1,6 @@ // Test -fsanitize-memory-use-after-dtor -// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -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-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" // 24 bytes total struct Packed { @@ -68,7 +68,6 @@ Adjacent ad; // CHECK: ret void // CHECK-LABEL: define {{.*}}EmptyD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback{{.*}}i64 0 // CHECK: ret void // CHECK-LABEL: define {{.*}}SimpleD2Ev diff --git a/clang/test/CodeGenCXX/sanitize-dtor-callback.cpp b/clang/test/CodeGenCXX/sanitize-dtor-callback.cpp index ecb0f2b2d13b4..f0d1e5697e7a0 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-callback.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-callback.cpp @@ -1,5 +1,5 @@ // Test -fsanitize-memory-use-after-dtor -// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" // Sanitizing dtor is emitted in dtor for every class, and only // poisons once. @@ -57,17 +57,13 @@ Defaulted_Non_Trivial def_non_trivial; // CHECK-LABEL: define {{.*}}SimpleD2Ev // CHECK-NOT: store i{{[0-9]+}} 0, {{.*}}@__msan_param_tls // CHECK: call void @__sanitizer_dtor_callback -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // CHECK-LABEL: define {{.*}}InlinedD2Ev // CHECK-NOT: store i{{[0-9]+}} 0, {{.*}}@__msan_param_tls // CHECK: call void @__sanitizer_dtor_callback -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // CHECK-LABEL: define {{.*}}Defaulted_Non_TrivialD2Ev -// CHECK-NOT: store i{{[0-9]+}} 0, {{.*}}@__msan_param_tls // CHECK: call void @__sanitizer_dtor_callback -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void diff --git a/clang/test/CodeGenCXX/sanitize-dtor-derived-class.cpp b/clang/test/CodeGenCXX/sanitize-dtor-derived-class.cpp index 618096aeebd7d..0a6aacb84d417 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-derived-class.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-derived-class.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -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-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" // Base dtor poisons members // Complete dtor poisons vtable ptr after destroying members and @@ -31,41 +31,31 @@ Derived d; // Invoke base destructor. No vtable pointer to poison. // CHECK-LABEL: define {{.*}}DerivedD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}DerivedD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // CHECK-LABEL: define {{.*}}DerivedD0Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}DerivedD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // Invokes base destructor, and poison vtable pointer. // CHECK-LABEL: define {{.*}}BaseD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}BaseD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // CHECK-LABEL: define {{.*}}BaseD0Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}BaseD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // Poison members and vtable ptr. // CHECK-LABEL: define {{.*}}BaseD2Ev // CHECK: call void @__sanitizer_dtor_callback // CHECK: call void @__sanitizer_dtor_callback{{.*}}i64 8 -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // Poison members and destroy non-virtual base. // CHECK-LABEL: define {{.*}}DerivedD2Ev // CHECK: call void @__sanitizer_dtor_callback -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}BaseD2Ev // CHECK: call void @__sanitizer_dtor_callback{{.*}}i64 8 // CHECK: ret void diff --git a/clang/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp b/clang/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp index 4af26770223f5..2817aac4ef4a1 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp @@ -1,5 +1,5 @@ // Test -fsanitize-memory-use-after-dtor -// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" // The no_sanitize_memory attribute, when applied to a destructor, // represses emission of sanitizing callback @@ -26,13 +26,10 @@ int main() { // Repressing the sanitization attribute results in no msan // instrumentation of the destructor // CHECK: define {{.*}}No_SanD1Ev{{.*}} [[ATTRIBUTE:#[0-9]+]] -// CHECK-NOT: call void {{.*}}sanitizer_dtor_callback // CHECK: ret void // CHECK: define {{.*}}No_SanD2Ev{{.*}} [[ATTRIBUTE:#[0-9]+]] -// CHECK-NOT: call void {{.*}}sanitizer_dtor_callback // CHECK: call void {{.*}}VectorIiED2Ev -// CHECK-NOT: call void {{.*}}sanitizer_dtor_callback // CHECK: ret void // CHECK: define {{.*}}VectorIiED2Ev diff --git a/clang/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp b/clang/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp index 3dfcd6ed46b51..c75def6f9ef34 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -fsanitize=memory -O0 -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s -// RUN: %clang_cc1 -fsanitize=memory -O1 -disable-llvm-passes -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fsanitize=memory -O0 -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -fsanitize=memory -O1 -disable-llvm-passes -fsanitize-memory-use-after-dtor -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" template <class T> class Vector { @@ -47,6 +47,7 @@ Derived d; // CHECK-LABEL: define {{.*}}ZN7DerivedD1Ev // CHECK: call void {{.*}}ZN11VirtualBaseD2Ev +// CHECK: call void @__sanitizer_dtor_callback({{.*}}, i64 8) // CHECK: ret void // CHECK-LABEL: define {{.*}}ZN7DerivedD0Ev @@ -61,11 +62,13 @@ Derived d; // poison 2 ints // CHECK-LABEL: define {{.*}}ZN11VirtualBaseD2Ev // CHECK: call void {{.*}}sanitizer_dtor_callback({{.*}}, i64 8) +// CHECK: call void {{.*}}sanitizer_dtor_callback({{.*}}, i64 8) // CHECK: ret void // poison int and double // CHECK-LABEL: define {{.*}}ZN4BaseD2Ev // CHECK: call void {{.*}}sanitizer_dtor_callback({{.*}}, i64 16) +// CHECK: call void {{.*}}sanitizer_dtor_callback({{.*}}, i64 8) // CHECK: ret void // poison int, ignore vector, poison int diff --git a/clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp b/clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp index d6f5719c8bf39..96e60999890c9 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp @@ -1,6 +1,6 @@ // Test -fsanitize-memory-use-after-dtor -// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -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-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" struct Simple { int x_; @@ -16,7 +16,6 @@ Simple s; // Simple internal member is poisoned by compiler-generated dtor // CHECK: define {{.*}}SimpleD2Ev{{.*}} [[ATTRIBUTE:#[0-9]+]] // CHECK: {{^ *}}call void @__sanitizer_dtor_callback -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // Destructor does not emit any tail calls diff --git a/clang/test/CodeGenCXX/sanitize-dtor-trivial-base.cpp b/clang/test/CodeGenCXX/sanitize-dtor-trivial-base.cpp index ec92a8f8548fb..7584fc02cd8ee 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-trivial-base.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-trivial-base.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -no-opaque-pointers -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s -// RUN: %clang_cc1 -no-opaque-pointers -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -no-opaque-pointers -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -no-opaque-pointers -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" // Base class has trivial dtor => complete dtor poisons base class memory directly. diff --git a/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp b/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp index 9e328c0a28952..980f833487c08 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp @@ -1,6 +1,6 @@ // Test -fsanitize-memory-use-after-dtor -// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -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-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck%s --implicit-check-not="call void @__sanitizer_" // TODO Success pending on resolution of issue: // https://github.com/google/sanitizers/issues/596 diff --git a/clang/test/CodeGenCXX/sanitize-dtor-vtable.cpp b/clang/test/CodeGenCXX/sanitize-dtor-vtable.cpp index 2318ef0d80032..afb8f9d0d1234 100644 --- a/clang/test/CodeGenCXX/sanitize-dtor-vtable.cpp +++ b/clang/test/CodeGenCXX/sanitize-dtor-vtable.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -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-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-passes -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" class A { public: @@ -18,30 +18,23 @@ class B : virtual public A { B b; // CHECK-LABEL: define {{.*}}AD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}AD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // After invoking base dtor and dtor for virtual base, poison vtable ptr. // CHECK-LABEL: define {{.*}}BD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}BD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: call void {{.*}}AD2Ev // CHECK: call void @__sanitizer_dtor_callback{{.*}}i64 8 -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // Since no virtual bases, poison vtable ptr here. // CHECK-LABEL: define {{.*}}AD2Ev // CHECK: call void @__sanitizer_dtor_callback // CHECK: call void @__sanitizer_dtor_callback{{.*}}i64 8 -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void // Poison members // CHECK-LABEL: define {{.*}}BD2Ev // CHECK: call void @__sanitizer_dtor_callback -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK: ret void diff --git a/clang/test/CodeGenCXX/sanitize-no-dtor-callback.cpp b/clang/test/CodeGenCXX/sanitize-no-dtor-callback.cpp index afc5382eb4644..af130faf13116 100644 --- a/clang/test/CodeGenCXX/sanitize-no-dtor-callback.cpp +++ b/clang/test/CodeGenCXX/sanitize-no-dtor-callback.cpp @@ -1,6 +1,6 @@ // Test with the flag -fno-sanitize-memory-use-after-dtor, to ensure that // instrumentation is not erroneously inserted -// RUN: %clang_cc1 -fsanitize=memory -fno-sanitize-memory-use-after-dtor -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fsanitize=memory -fno-sanitize-memory-use-after-dtor -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s --implicit-check-not="call void @__sanitizer_" struct Simple { int x; @@ -16,10 +16,7 @@ struct Inlined { }; Inlined i; // CHECK-LABEL: define {{.*}}InlinedD1Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK-LABEL: define {{.*}}SimpleD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback // CHECK-LABEL: define {{.*}}InlinedD2Ev -// CHECK-NOT: call void @__sanitizer_dtor_callback _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits