<div dir="ltr">Hi,<div><br></div><div>I've been trying to burn down the remaining sanitizer failures under the new pass manager. Right now I'm stuck on some ASan tests.</div><div><br></div><div>Some ASan tests run under -O1. There are a couple differences between the old and new pass managers under -O1, e.g. the old PM doesn't inline whereas the new PM does. The differences seem to cause some lifetime intrinsics to get stripped out (e.g. via SROA, InstCombine). It might be due to ASan specifically testing undefined behavior, and different optimizations run means different behavior. For a specific example, use-after-scope-dtor-order.cpp runs under -O1 and fails under the new PM because SROA strips out the lifetime intrinsics and by the time the ASan pass runs it doesn't find the lifetime intrinsics to add its own instrumentation.</div><div><br></div><div>What's the proper way to resolve this? Run the tests under -O0? Change the passes pipeline under the new PM when ASan (and maybe other sanitizers) is detected?</div></div>