http://llvm.org/bugs/show_bug.cgi?id=20038

David Blaikie <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #5 from David Blaikie <[email protected]> ---
The crux of the particular issue is a dtor call after a && expression. The
branch to the cleanup block from the RHS of the && would have no location
information (to make stepping through the code easier - you won't get an extra
step just for the unconditional branch), but this would mean the cleanup from
that expression wouldn't get a location either - then the inliner does bad
things to debug info if the caller has debug info but the call site doesn't.
The inliner leaves the debug info on the callee's instructions as they were in
the original function, rather than wiring them up as being inlined into the
outer function.

Fixed this case in clang in r211722 - I've tried to test to ensure there aren't
any other cases that produce location-less callers in function's that otherwise
have debug info, but I might've failed to catch all of them. Will fix as they
come up.

I've readded the assertion, but added more checking into other parts of LLVM as
well in r211721... which I then reverted in r211723. Looks like there are more
cases here. *looking*.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to