[compiler-rt] 5ee902b - [compiler-rt][asan] Add noinline to use-after-scope testcases

Jinsong Ji via llvm-commits llvm-commits at lists.llvm.org
Wed May 27 07:10:22 PDT 2020


Author: Jinsong Ji
Date: 2020-05-27T14:05:02Z
New Revision: 5ee902bb5f3a843230f45dcd7b8101de71da7c83

URL: https://github.com/llvm/llvm-project/commit/5ee902bb5f3a843230f45dcd7b8101de71da7c83
DIFF: https://github.com/llvm/llvm-project/commit/5ee902bb5f3a843230f45dcd7b8101de71da7c83.diff

LOG: [compiler-rt][asan] Add noinline to use-after-scope testcases

Some testcases are unexpectedly passing with NPM.
This is because the target functions are inlined in NPM.

I think we should add noinline attribute to keep these test points.

Reviewed By: vitalybuka

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

Added: 
    

Modified: 
    compiler-rt/test/asan/TestCases/use-after-scope-dtor-order.cpp
    compiler-rt/test/asan/TestCases/use-after-scope-temp.cpp
    compiler-rt/test/asan/TestCases/use-after-scope-temp2.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/test/asan/TestCases/use-after-scope-dtor-order.cpp b/compiler-rt/test/asan/TestCases/use-after-scope-dtor-order.cpp
index 8d4f772c0eab..43c17106010b 100644
--- a/compiler-rt/test/asan/TestCases/use-after-scope-dtor-order.cpp
+++ b/compiler-rt/test/asan/TestCases/use-after-scope-dtor-order.cpp
@@ -5,7 +5,7 @@
 
 struct IntHolder {
   explicit IntHolder(int *val = 0) : val_(val) { }
-  ~IntHolder() {
+  __attribute__((noinline)) ~IntHolder() {
     printf("Value: %d\n", *val_);  // BOOM
     // CHECK: ERROR: AddressSanitizer: stack-use-after-scope
     // CHECK:  #0 0x{{.*}} in IntHolder::~IntHolder{{.*}}.cpp:[[@LINE-2]]

diff  --git a/compiler-rt/test/asan/TestCases/use-after-scope-temp.cpp b/compiler-rt/test/asan/TestCases/use-after-scope-temp.cpp
index b97f312b4aba..2cfc7cee215a 100644
--- a/compiler-rt/test/asan/TestCases/use-after-scope-temp.cpp
+++ b/compiler-rt/test/asan/TestCases/use-after-scope-temp.cpp
@@ -8,7 +8,7 @@ struct IntHolder {
 
 const IntHolder *saved;
 
-void save(const IntHolder &holder) {
+__attribute__((noinline)) void save(const IntHolder &holder) {
   saved = &holder;
 }
 

diff  --git a/compiler-rt/test/asan/TestCases/use-after-scope-temp2.cpp b/compiler-rt/test/asan/TestCases/use-after-scope-temp2.cpp
index 99e4f2505ff3..3e6f52a3942e 100644
--- a/compiler-rt/test/asan/TestCases/use-after-scope-temp2.cpp
+++ b/compiler-rt/test/asan/TestCases/use-after-scope-temp2.cpp
@@ -3,7 +3,7 @@
 
 
 struct IntHolder {
-  const IntHolder& Self() const {
+  __attribute__((noinline)) const IntHolder &Self() const {
     return *this;
   }
   int val = 3;


        


More information about the llvm-commits mailing list