[llvm-dev] Canonical representation for empty lists in debug info metadata

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Sat Aug 22 15:39:46 PDT 2015

On Fri, Aug 21, 2015 at 4:54 PM, Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

> > On 2015-Aug-21, at 13:39, David Blaikie <dblaikie at gmail.com> wrote:
> >
> > While checking for serialization/deserialization without using pointee
> types, I've come across a few test cases that crash at head, without my
> debugging assertions for accessing pointee types.
> >
> > One of them is test/Transforms/StripSymbols/2010-06-30-StripDebug.ll
> >
> > Its retainedTypes metadata points to a metadata array of a single null
> element.
> >
> > This crashes the dyn_cast (because it's not a dyn_cast_or_null)
> Verifier.cpp:3785
> The Verifier should crash in any case, it should just fail.


> Do you have a preferred/canonical representation intended in this case -
> an extant, but zero-length list, or no list at all? I tend to prefer no
> list at all, just because it simplifies reading of the debug info. Rather
> than seeing a "retainedTypes" property, following it to the metadata, only
> to find it's zero-length?
> I agree: no list at all is better.


- Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150822/904e18eb/attachment.html>

More information about the llvm-dev mailing list