mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-05 17:18:55 +00:00
Do not generate specification DIE for nested functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95452 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8f60e4d679
commit
6cda22eae4
@ -1327,7 +1327,13 @@ DIE *DwarfDebug::updateSubprogramScopeDIE(MDNode *SPNode) {
|
|||||||
DIE *SPDie = ModuleCU->getDIE(SPNode);
|
DIE *SPDie = ModuleCU->getDIE(SPNode);
|
||||||
assert (SPDie && "Unable to find subprogram DIE!");
|
assert (SPDie && "Unable to find subprogram DIE!");
|
||||||
DISubprogram SP(SPNode);
|
DISubprogram SP(SPNode);
|
||||||
if (SP.isDefinition() && !SP.getContext().isCompileUnit()) {
|
// There is not any need to generate specification DIE for a function
|
||||||
|
// defined at compile unit level. If a function is defined inside another
|
||||||
|
// function then gdb prefers the definition at top level and but does not
|
||||||
|
// expect specification DIE in parent function. So avoid creating
|
||||||
|
// specification DIE for a function defined inside a function.
|
||||||
|
if (SP.isDefinition() && !SP.getContext().isCompileUnit()
|
||||||
|
&& !SP.getContext().isSubprogram()) {
|
||||||
addUInt(SPDie, dwarf::DW_AT_declaration, dwarf::DW_FORM_flag, 1);
|
addUInt(SPDie, dwarf::DW_AT_declaration, dwarf::DW_FORM_flag, 1);
|
||||||
// Add arguments.
|
// Add arguments.
|
||||||
DICompositeType SPTy = SP.getType();
|
DICompositeType SPTy = SP.getType();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user