[compiler-rt] 982cfae - [test][asan] Check for order of DynInitPoison (#101584)

via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 2 10:16:06 PDT 2024


Author: Vitaly Buka
Date: 2024-08-02T10:16:02-07:00
New Revision: 982cfae465cabac3478f597a63feda64cf5e267c

URL: https://github.com/llvm/llvm-project/commit/982cfae465cabac3478f597a63feda64cf5e267c
DIFF: https://github.com/llvm/llvm-project/commit/982cfae465cabac3478f597a63feda64cf5e267c.diff

LOG: [test][asan] Check for order of DynInitPoison (#101584)

Also make sure we have dynamic init variables with any `-O`.

Added: 
    

Modified: 
    compiler-rt/test/asan/TestCases/Helpers/initialization-nobug-extra.cpp
    compiler-rt/test/asan/TestCases/initialization-nobug.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/test/asan/TestCases/Helpers/initialization-nobug-extra.cpp b/compiler-rt/test/asan/TestCases/Helpers/initialization-nobug-extra.cpp
index 886165affd760..0ce5359b405d0 100644
--- a/compiler-rt/test/asan/TestCases/Helpers/initialization-nobug-extra.cpp
+++ b/compiler-rt/test/asan/TestCases/Helpers/initialization-nobug-extra.cpp
@@ -1,9 +1,9 @@
 // Linker initialized:
 int getAB();
-static int ab = getAB();
+int ab = getAB();
 // Function local statics:
 int countCalls();
-static int one = countCalls();
+int one = countCalls();
 // Trivial constructor, non-trivial destructor:
 int getStructWithDtorValue();
-static int val = getStructWithDtorValue();
+int val = getStructWithDtorValue();

diff  --git a/compiler-rt/test/asan/TestCases/initialization-nobug.cpp b/compiler-rt/test/asan/TestCases/initialization-nobug.cpp
index d4dc855148ad3..18bd3d764c74a 100644
--- a/compiler-rt/test/asan/TestCases/initialization-nobug.cpp
+++ b/compiler-rt/test/asan/TestCases/initialization-nobug.cpp
@@ -1,20 +1,16 @@
 // A collection of various initializers which shouldn't trip up initialization
 // order checking.  If successful, this will just return 0.
 
-// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-nobug-extra.cpp -o %t
-// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
-// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-nobug-extra.cpp -o %t
-// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
-// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-nobug-extra.cpp -o %t
-// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
-// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-nobug-extra.cpp -o %t
-// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
+// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit"
+// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit"
+// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit"
+// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit"
 
 // Simple access:
 // Make sure that accessing a global in the same TU is safe
 
 bool condition = true;
-int initializeSameTU() {
+__attribute__((noinline, weak)) int initializeSameTU() {
   return condition ? 0x2a : 052;
 }
 int sameTU = initializeSameTU();
@@ -46,3 +42,6 @@ StructWithDtor struct_with_dtor;
 int getStructWithDtorValue() { return struct_with_dtor.value; }
 
 int main() { return 0; }
+
+// CHECK: DynInitPoison module: {{.*}}initialization-nobug.cpp
+// CHECK: DynInitPoison module: {{.*}}initialization-nobug-extra.cpp


        


More information about the llvm-commits mailing list