[llvm] [MachineOutliner] Preserve debug locations on outlined call sequences (PR #224189)

Ian Anderson via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 5 19:50:06 PDT 2026


ian-twilightcoder wrote:

> Thanks @ian-twilightcoder, confirmed. The inlined BufferedStackTrace ctor and the GetCurrentPc() call get outlined together as a thunk, and #224189 gave the outlined call the ctor's location, so frame #0 picked up the inlined frames.
> 
> Fixed in #229260: when a candidate contains a call, the outlined call now takes the last call's location, so unwinding through it matches the non-outlined code. Frame #0 should be strcpy.cold.1 asan_interceptors.cpp:642. Could you verify on your side?
> 
> In general, an outlined call can carry only one location for the whole sequence it replaces, so we prioritize call sites for unwinding. That's exact for a single call like this one, but inhrently it can't be exact for every call when a sequence has several.

That fixes our tests, thank you!

https://github.com/llvm/llvm-project/pull/224189


More information about the llvm-commits mailing list