[LLVMdev] Passing DW_TAG_typedef as the type to DIBuilder's createFunction

Eric Christopher echristo at gmail.com
Tue Apr 9 15:20:00 PDT 2013


On Tue, Apr 9, 2013 at 1:53 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi David, I'm seeing an assertion failure when passing this node
>
>   !{i32 786454, metadata <badref>, metadata <badref>, metadata !"fn_t", i32
> 5, i64 0, i64 0, i64 0, i32 0, metadata <badref>} ; [ DW_TAG_typedef ]
> [fn_t] [line 5, size 0, align 0, offset 0] [from ]
>
> as the function type parameter to DIBuilder::createFunction, due to this
> check
> in DebugInfo.cpp:
>
> 486       DICompositeType Ty = getType();
> 487       if (!Ty.Verify())
> 488         return false;
>
> Is it in fact wrong to pass a typedef here?
>

I can't come up with a way that'd be correct, no. You should be using
createSubroutineType and passing that into the builder. Have example
code where this is coming up?

-eric



More information about the llvm-dev mailing list