[clang] b31b72a - [test][msan] Simplify tests with --implicit-check-not

Vitaly Buka via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 28 22:43:44 PDT 2022


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


        


More information about the cfe-commits mailing list