[all-commits] [llvm/llvm-project] 7e4ae2: [Sanitizers] Don't inline unpoisoning of small sta...
Mariusz Borsa via All-commits
all-commits at lists.llvm.org
Fri Dec 15 17:34:07 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7e4ae28645ef3ad36f1daec3fe3edc901f561bc7
https://github.com/llvm/llvm-project/commit/7e4ae28645ef3ad36f1daec3fe3edc901f561bc7
Author: Mariusz Borsa <wrotki at msn.com>
Date: 2023-12-15 (Fri, 15 Dec 2023)
Changed paths:
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
A llvm/test/Instrumentation/AddressSanitizer/calls-only-smallfn.ll
M llvm/test/Instrumentation/AddressSanitizer/calls-only.ll
Log Message:
-----------
[Sanitizers] Don't inline unpoisoning of small stacks when inlining disabled (#75555)
When ASan.MaxInlinePoisoningSize == 0 , it means that no shadow memory
operations should be made via inlined instrumentation code,
but only via calls to shadow setting functions. This change fixes one
violation of this, which happened when the function allocas count
was small, i.e. less than 5 - in the code modifying the shadow just
before ret instruction.
We now explicitly check ASan.MaxInlinePoisoningSize , and if it's 0 then
we disallow inlining. It is required for the instrumentation
emitting code suitable for handling by ABI implementation.
rdar://119513720
Co-authored-by: Mariusz Borsa <m_borsa at apple.com>
More information about the All-commits
mailing list