[LLVMdev] LTO type uniquing: ODR assertion failure

Manman Ren
Mon, 14 Jul 2014 18:32:16 -0000

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>