[LLVMdev] MDNodeFwdDecl

Duncan P. N. Exon Smith dexonsmith at apple.com
Tue Jun 2 13:29:38 PDT 2015


> On 2015-Jun-02, at 11:14, Hui Zhang <wayne.huizhang at gmail.com> wrote:
> 
> Any ideas ?
> 
> Thanks
> 
> On Tue, Jun 2, 2015 at 12:40 PM, Hui Zhang <wayne.huizhang at gmail.com> wrote:
> Hello,
> 
> I'm having this assertion fail when I was using DIBuilder to create the debug information:
> 
> Expected no forward declarations!
> !719
> 
> The assertion condition is: !isa<MDNodeFwdDecl> (MD)
> 
> So My questions are: 
> 1. What is exactly the MDNodeFwdDecl ? I saw it's in the latest release 3.6.1, but I also found this link http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150119/253730.html 
> saying that MDNodeFwdDecl has been removed, and neither can I find class reference of it on the llvm doxgen website. So is it still valid ??
> 
> 2. How and when will it be generated when I use DIBuilder module ?

I suspect you've neglected to call `DIBuilder::finalize()`.

On trunk, `isa<MDNodeFwdDecl>(N)` has become `N.isTemporary()`.  There
are a number of temporaries created in the debug info graph to facilitate
building cycles, and `DIBuilder::finalize()` (1) cleans them up, and (2)
resolves other nodes involved in the cycles.

It looks like we don't archive old doxygen files, but you should be
able to build it yourself for old versions.




More information about the llvm-dev mailing list