[PATCH] D30307: Fix insertion of `sanitizer_cov_trace_pc_guard` insertion in optimized code with debug info

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 23 13:23:49 PST 2017


> On Feb 23, 2017, at 1:07 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
> 
> 
>> On Feb 23, 2017, at 12:54 PM, Peter Collingbourne <peter at pcc.me.uk> wrote:
>> 
>> On Thu, Feb 23, 2017 at 12:04 PM, Mehdi AMINI via Phabricator via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>> mehdi_amini created this revision.
>> Herald added a subscriber: aprantl.
>> 
>> It is illegal to have a call without debug info attached in a function
>> with debug info: it'll crash the backend.
>> 
>> Isn't that a bug in the backend? What happens if I inline a function compiled without debug info into a function compiled with debug info?
> 
> See my update, this is in the verifier.
> However I agree with you that this seems suspicious: what if LTO or ThinLTO make available a definition without debug info into a file with debug info. 
> 
> CC Adrian to clarify?

- inlining a function without debug info into function with debug info and a location on the call site works: IIRC the inlined nodebug function will inherit the location of the call site. (+david who has a prepared statement explaining this in detail ;-)
- inlining a function withdebug info into a function without debug info also works
- it is only inlining a function with debug info into another function with debug info but no location on the call site that is dangerous.

-- adrian


More information about the llvm-commits mailing list