[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@apple.com>
parent
9950bb99
Please register or sign in to comment