Need to handle static declarations properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33022 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey
2007-01-08 22:15:18 +00:00
parent dfc12993b9
commit 6488a078ba

View File

@@ -1614,6 +1614,7 @@ private:
AddType(Static, StaticTy, Unit);
// Add flags.
if (!StaticDesc->isStatic())
AddUInt(Static, DW_AT_external, DW_FORM_flag, 1);
AddUInt(Static, DW_AT_declaration, DW_FORM_flag, 1);
@@ -1662,6 +1663,7 @@ private:
}
// Add flags.
if (!MethodDesc->isStatic())
AddUInt(Method, DW_AT_external, DW_FORM_flag, 1);
AddUInt(Method, DW_AT_declaration, DW_FORM_flag, 1);
@@ -1774,6 +1776,7 @@ private:
LinkageName);
}
AddType(VariableDie, GVD->getType(), Unit);
if (!GVD->isStatic())
AddUInt(VariableDie, DW_AT_external, DW_FORM_flag, 1);
// Add source line info if available.
@@ -1814,7 +1817,6 @@ private:
const std::string &Name = SPD->getName();
const std::string &FullName = SPD->getFullName();
const std::string &LinkageName = SPD->getLinkageName();
unsigned IsExternal = SPD->isStatic() ? 0 : 1;
DIE *SubprogramDie = new DIE(DW_TAG_subprogram);
AddString(SubprogramDie, DW_AT_name, DW_FORM_string, Name);
@@ -1823,7 +1825,8 @@ private:
LinkageName);
}
if (SPD->getType()) AddType(SubprogramDie, SPD->getType(), Unit);
AddUInt(SubprogramDie, DW_AT_external, DW_FORM_flag, IsExternal);
if (!SPD->isStatic())
AddUInt(SubprogramDie, DW_AT_external, DW_FORM_flag, 1);
AddUInt(SubprogramDie, DW_AT_prototyped, DW_FORM_flag, 1);
// Add source line info if available.