[llvm-dev] StripDeadDebugInfo for static inline functions.

Arsen Hakobyan via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 12 01:56:42 PST 2018

Hi all,

I would like to understand the strip-dead-debug-info transformation.
In my test case there is a static inline function with two local variables.
It appears that the function is already inlined before
strip-dead-debug-info starts its work. As a result the DICompileUnit is
cleaned and its subprograms list has no reference to the DISubprogram for
the inlined function, but as there is reference from the DILocalVariables
to the DISubprogram it remains (IMHO).
This caused to a segmentation fault while running llc on the optimized IR
file at function "constructAbstractSubprogramScopeDIE" in file
DwarfDebug.cpp because the scope of the DISubprogram is null (I assume it
should be the DICompileUnit).

So I would like to know what would be the correct solution for this issue:
Update optimization to not remove reference from the subprograms list, or
to skip finding scope in llc.

Any help is highly appreciated.



If it's not fun you're not doing it right -- Fran Tarkenton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180112/0ca8c716/attachment.html>

More information about the llvm-dev mailing list