[LLVMdev] LTO type uniquing: ODR assertion failure

Manman Ren manman.ren at gmail.com
Mon Jul 14 11:32:16 PDT 2014


We still have access to types via MDNodes directly and the assertion that
assumes all accesses to DITypes are accessing the resolved DIType will fire

i.e assert(Ty == resolve(Ty.getRef()))

One example is the access to DIType via DIArray in SubroutineType. If all
elements in the type array are DITypes we can create a DITypeArray and use
that for SubroutineType's type array instead. But we currently have
unspecified parameter in the type array and it is not a DIType.

What are your thoughts? Suggestions are welcome.

Is it a good idea to canonicalize file names (i.e dA/B.h should be
equivalent to dA/../dA/B.h)? This will reduce the chance of having two
DITypes that should be equivalent with equivalent file names.

Thanks,
Manman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140714/552c0418/attachment.html>


More information about the llvm-dev mailing list