[PATCH] D51238: Add a unit test for DILocation::getMergedLocation()

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 27 12:42:32 PDT 2018


> On Aug 27, 2018, at 11:54 AM, David Blaikie <dblaikie at gmail.com> wrote:
> 
> Could you still come up with a practical test case for this? (doesn't necessarily need to be checked in, to be honest - but something to validate that this use case/support is needed & not working around a bug (& if it is working around a bug, that we know about it so we can remove the workaround eventually & not leave it in as folklore and cruft))
> 
> I can imagine that there could be cases where there would be no common scope - due to inlining into a nodebug function (we have that classic assertion to ensure all scope chains lead to the DISubprogram that contains those locations - but that does not apply if there is no DISubprogram for a function - if it is nodebug and has had debug info inlined into it (which is still useful if, then, the nodebug function is inlined into somewhere else)). So maybe you can search around there.

One of the testcases I had was the *entire* Swift standard library and unfortunately bugpoint was not helpful at reducing the IR. In Swift code it's possible to end up with thunks with no debug information, so that could fit the description. I'll see if I can find a smaller example that I can actually share.

-- adrian

> 
> Though I also think probably the right answer here is not to pick one of the two locations, but to drop the location entirely.
> 
> - Dave
> 
> On Fri, Aug 24, 2018 at 4:31 PM Phabricator via Phabricator <reviews at reviews.llvm.org <mailto:reviews at reviews.llvm.org>> wrote:
> This revision was not accepted when it landed; it landed in state "Needs Review".
> This revision was automatically updated to reflect the committed changes.
> Closed by commit rL340672: Prevent DILocation::getMergedLocation() from creating invalid metadata. (authored by adrian, committed by ).
> 
> Changed prior to commit:
>   https://reviews.llvm.org/D51238?vs=162492&id=162499#toc <https://reviews.llvm.org/D51238?vs=162492&id=162499#toc>
> 
> Repository:
>   rL LLVM
> 
> https://reviews.llvm.org/D51238 <https://reviews.llvm.org/D51238>
> 
> Files:
>   llvm/trunk/lib/IR/DebugInfoMetadata.cpp
>   llvm/trunk/unittests/IR/MetadataTest.cpp
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180827/0608b070/attachment.html>


More information about the llvm-commits mailing list