[llvm-branch-commits] [llvm-branch] r310309 - Merging r310241 and r310242:

Hans Wennborg via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Aug 7 14:48:12 PDT 2017


Author: hans
Date: Mon Aug  7 14:48:12 2017
New Revision: 310309

URL: http://llvm.org/viewvc/llvm-project?rev=310309&view=rev
Log:
Merging r310241 and r310242:
------------------------------------------------------------------------
r310241 | vitalybuka | 2017-08-07 00:12:34 -0700 (Mon, 07 Aug 2017) | 3 lines

[asan] Disable checking of arguments passed by value for --asan-force-dynamic-shadow

Fails with "Instruction does not dominate all uses!"
------------------------------------------------------------------------

------------------------------------------------------------------------
r310242 | vitalybuka | 2017-08-07 00:35:33 -0700 (Mon, 07 Aug 2017) | 1 line

[asan] Fix asan dynamic shadow check before copyArgsPassedByValToAllocas
------------------------------------------------------------------------

Modified:
    llvm/branches/release_50/   (props changed)
    llvm/branches/release_50/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    llvm/branches/release_50/test/Instrumentation/AddressSanitizer/stack-poisoning-byval-args.ll

Propchange: llvm/branches/release_50/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Aug  7 14:48:12 2017
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,308483-308484,308503,308808,308813,308891,308906,308950,308963,308978,308986,309113,309302,309321,309323,309325,309330,309343,309353,309355,309422,309481,309483,309495,309555,309561,309594,309651,309744,309849,309928,309930,310071,310190
+/llvm/trunk:155241,308483-308484,308503,308808,308813,308891,308906,308950,308963,308978,308986,309113,309302,309321,309323,309325,309330,309343,309353,309355,309422,309481,309483,309495,309555,309561,309594,309651,309744,309849,309928,309930,310071,310190,310241-310242

Modified: llvm/branches/release_50/lib/Transforms/Instrumentation/AddressSanitizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/lib/Transforms/Instrumentation/AddressSanitizer.cpp?rev=310309&r1=310308&r2=310309&view=diff
==============================================================================
--- llvm/branches/release_50/lib/Transforms/Instrumentation/AddressSanitizer.cpp (original)
+++ llvm/branches/release_50/lib/Transforms/Instrumentation/AddressSanitizer.cpp Mon Aug  7 14:48:12 2017
@@ -756,7 +756,8 @@ struct FunctionStackPoisoner : public In
   bool runOnFunction() {
     if (!ClStack) return false;
 
-    if (ClRedzoneByvalArgs) copyArgsPassedByValToAllocas();
+    if (ClRedzoneByvalArgs && Mapping.Offset != kDynamicShadowSentinel)
+      copyArgsPassedByValToAllocas();
 
     // Collect alloca, ret, lifetime instructions etc.
     for (BasicBlock *BB : depth_first(&F.getEntryBlock())) visit(*BB);

Modified: llvm/branches/release_50/test/Instrumentation/AddressSanitizer/stack-poisoning-byval-args.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/test/Instrumentation/AddressSanitizer/stack-poisoning-byval-args.ll?rev=310309&r1=310308&r2=310309&view=diff
==============================================================================
--- llvm/branches/release_50/test/Instrumentation/AddressSanitizer/stack-poisoning-byval-args.ll (original)
+++ llvm/branches/release_50/test/Instrumentation/AddressSanitizer/stack-poisoning-byval-args.ll Mon Aug  7 14:48:12 2017
@@ -1,5 +1,7 @@
 ; This check verifies that arguments passed by value get redzones.
 ; RUN: opt < %s -asan -asan-realign-stack=32 -S | FileCheck %s
+; RUN: opt < %s -asan -asan-realign-stack=32 -asan-force-dynamic-shadow -S | FileCheck %s --check-prefixes=CHECK-FDS
+
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-unknown-linux-gnu"
@@ -8,6 +10,8 @@ target triple = "x86_64-unknown-linux-gn
 
 declare i32 @bar(%struct.A*)
 
+; CHECK-FDS-NOT: {{\.byval}}
+
 ; Test behavior for named argument with explicit alignment.  The memcpy and
 ; alloca alignments should match the explicit alignment of 64.
 define void @foo(%struct.A* byval align 64 %a) sanitize_address {




More information about the llvm-branch-commits mailing list