[RISC-V][HWASAN] Adjust lit test support for RISC-V HWASAN feature
authorAlexey Baturo <space.monkey.delivers@gmail.com>
Sun, 31 Jul 2022 10:41:49 +0000 (13:41 +0300)
committerAlexey Baturo <space.monkey.delivers@gmail.com>
Wed, 14 Dec 2022 13:13:55 +0000 (16:13 +0300)
Reviewed by: vitalybuka

Differential Revision: https://reviews.llvm.org/D131344

21 files changed:
compiler-rt/test/hwasan/TestCases/Linux/atfork.cpp
compiler-rt/test/hwasan/TestCases/Linux/vfork.c
compiler-rt/test/hwasan/TestCases/exported-tagged-global.c
compiler-rt/test/hwasan/TestCases/stack-oob.c
compiler-rt/test/hwasan/TestCases/stack-uas.c
compiler-rt/test/hwasan/TestCases/tag-mismatch-border-address.c
compiler-rt/test/hwasan/TestCases/try-catch.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-capture.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-dtor-order.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-goto.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-if.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-inlined.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-loop-bug.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-loop-removed.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-loop.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-nobug.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-setjmp.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-temp.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-temp2.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope-types.cpp
compiler-rt/test/hwasan/TestCases/use-after-scope.cpp

index b9f805f..95f05d6 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_hwasan -O0 %s -o %t && %run %t 2>&1
 
-// REQUIRES: aarch64-target-arch || x86_64-target-arch
+// REQUIRES: aarch64-target-arch || x86_64-target-arch || riscv64-target-arch
 // REQUIRES: pointer-tagging
 
 #include <assert.h>
index f4e1d2a..3ab0ce9 100644 (file)
@@ -1,7 +1,7 @@
 // https://github.com/google/sanitizers/issues/925
 // RUN: %clang_hwasan -O0 %s -o %t && %run %t 2>&1
 
-// REQUIRES: aarch64-target-arch || x86_64-target-arch
+// REQUIRES: aarch64-target-arch || x86_64-target-arch || riscv64-target-arch
 // REQUIRES: pointer-tagging
 
 #include <assert.h>
index 9c4936c..24f5012 100644 (file)
@@ -4,7 +4,10 @@
 // RUN: %run %t
 // RUN: %clang_hwasan -O1 -mllvm --aarch64-enable-global-isel-at-O=1 %s -o %t
 // RUN: %run %t
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
+
+// This test relies on aarch64 option thus it fails for risc-v
+// XFAIL: riscv64-target-arch
 
 static int global;
 
index 1e6cefa..b745fb0 100644 (file)
@@ -10,7 +10,8 @@
 // REQUIRES: stable-runtime
 
 // Stack short granules are currently not implemented on x86.
-// XFAIL: x86_64
+// RISC-V target doesn't support oldrt
+// XFAIL: x86_64, riscv64
 
 #include <stdlib.h>
 #include <sanitizer/hwasan_interface.h>
index 7f5a6f2..6edacd7 100644 (file)
@@ -40,7 +40,7 @@ __attribute__((noinline)) void Unrelated3() {
 __attribute__((noinline)) char buggy() {
   char *volatile p;
   {
-    char zzz[0x1000];
+    char zzz[0x1000] = {};
     p = zzz;
   }
   return *p;
index b66ab5b..85e04b7 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK
 
 // REQUIRES: stable-runtime
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 
 #include <sanitizer/hwasan_interface.h>
 #include <stdio.h>
index 8e35a9d..1449d8d 100644 (file)
@@ -5,6 +5,7 @@
 // RUN: %clangxx_hwasan_oldrt -static-libstdc++ %s -mllvm -hwasan-instrument-landing-pads=0 -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=BAD
 
 // C++ tests on x86_64 require instrumented libc++/libstdc++.
+// RISC-V target doesn't support oldrt
 // REQUIRES: aarch64-target-arch
 
 #include <stdexcept>
index 3f4c216..5a2d0dc 100644 (file)
@@ -2,7 +2,7 @@
 
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope --std=c++11 -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <functional>
index cd2ed4b..89bdf17 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <stdio.h>
index 3ea25ba..95803da 100644 (file)
@@ -5,7 +5,7 @@
 // Function jumps over variable initialization making lifetime analysis
 // ambiguous. Asan should ignore such variable and program must not fail.
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <stdlib.h>
index 51d10ba..aee1c46 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 int *p;
index b846563..8ee1277 100644 (file)
@@ -7,7 +7,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O2 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 int *arr;
index 5ab834e..e6643f4 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 volatile int *p;
index 1f7fbd1..14d9c44 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <stdlib.h>
index adbcc1c..5e85a92 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 int *p[3];
index 491d83e..9e4712c 100644 (file)
@@ -2,7 +2,7 @@
 
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && %run %t
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <stdio.h>
index 396a03d..3157c0b 100644 (file)
@@ -1,7 +1,7 @@
 // RUN: %clangxx_hwasan  -mllvm -hwasan-use-stack-safety=0 -mllvm -hwasan-use-after-scope -O2 %s -o %t && \
 // RUN:     %run %t 2>&1
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <sanitizer/hwasan_interface.h>
index d6c751a..db2ab61 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -std=c++11 -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 struct IntHolder {
index 369fdbe..9315820 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -std=c++11 -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 struct IntHolder {
index b3b928d..ba53bf8 100644 (file)
@@ -27,7 +27,7 @@
 // RUN: not %run %t-noexcept 9 2>&1 | FileCheck %s
 // RUN: not %run %t-noexcept 10 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 #include <stdlib.h>
index 28648e4..7432c1e 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %clangxx_hwasan -mllvm -hwasan-use-after-scope -O1 %s -o %t && \
 // RUN:     not %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: aarch64-target-arch
+// REQUIRES: aarch64-target-arch || riscv64-target-arch
 // REQUIRES: stable-runtime
 
 volatile int *p = 0;