[llvm] [Sanitizers] Don't inline unpoisoning of small stacks when inlining disabled (PR #75555)
    Vitaly Buka via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Dec 14 20:55:19 PST 2023
    
    
  
================
@@ -3505,7 +3505,7 @@ void FunctionStackPoisoner::processStaticAllocas() {
       SplitBlockAndInsertIfThenElse(Cmp, Ret, &ThenTerm, &ElseTerm);
 
       IRBuilder<> IRBPoison(ThenTerm);
-      if (StackMallocIdx <= 4) {
+      if (ASan.MaxInlinePoisoningSize != 0 && StackMallocIdx <= 4) {
----------------
vitalybuka wrote:
Should it be rather 
```
  int ClassSize = kMinStackMallocSize << StackMallocIdx;
  if (ASan.MaxInlinePoisoningSize < ClassSize / L.Granularity && StackMallocIdx <= 4) {
        ShadowAfterReturn.resize(ClassSize / L.Granularity,
                                 kAsanStackUseAfterReturnMagic);
```
https://github.com/llvm/llvm-project/pull/75555
    
    
More information about the llvm-commits
mailing list