mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 02:24:22 +00:00
Revert "[DWARF] Fix debug info generation for function static variables, typedefs, and records"
Caused PR24008
This reverts commit 37cb5f1c2d
.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241176 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -449,14 +449,14 @@ void DwarfDebug::beginModule() {
|
||||
auto *CUNode = cast<DICompileUnit>(N);
|
||||
DwarfCompileUnit &CU = constructDwarfCompileUnit(CUNode);
|
||||
for (auto *IE : CUNode->getImportedEntities())
|
||||
ScopesWithLocalDeclNodes.push_back(std::make_pair(IE->getScope(), IE));
|
||||
for (auto *GV : CUNode->getGlobalVariables()) {
|
||||
auto *Context = GV->getScope();
|
||||
if (Context && isa<DILexicalBlockBase>(Context))
|
||||
ScopesWithLocalDeclNodes.push_back(std::make_pair(Context, GV));
|
||||
else
|
||||
CU.getOrCreateGlobalVariableDIE(GV);
|
||||
}
|
||||
ScopesWithImportedEntities.push_back(std::make_pair(IE->getScope(), IE));
|
||||
// Stable sort to preserve the order of appearance of imported entities.
|
||||
// This is to avoid out-of-order processing of interdependent declarations
|
||||
// within the same scope, e.g. { namespace A = base; namespace B = A; }
|
||||
std::stable_sort(ScopesWithImportedEntities.begin(),
|
||||
ScopesWithImportedEntities.end(), less_first());
|
||||
for (auto *GV : CUNode->getGlobalVariables())
|
||||
CU.getOrCreateGlobalVariableDIE(GV);
|
||||
for (auto *SP : CUNode->getSubprograms())
|
||||
SPMap.insert(std::make_pair(SP, &CU));
|
||||
for (auto *Ty : CUNode->getEnumTypes()) {
|
||||
@ -467,23 +467,12 @@ void DwarfDebug::beginModule() {
|
||||
for (auto *Ty : CUNode->getRetainedTypes()) {
|
||||
// The retained types array by design contains pointers to
|
||||
// MDNodes rather than DIRefs. Unique them here.
|
||||
DIType *RT = cast<DIType>(resolve(Ty->getRef()));
|
||||
auto *Context = resolve(Ty->getScope());
|
||||
if (Context && isa<DILexicalBlockBase>(Context))
|
||||
ScopesWithLocalDeclNodes.push_back(std::make_pair(Context, RT));
|
||||
else
|
||||
CU.getOrCreateTypeDIE(RT);
|
||||
CU.getOrCreateTypeDIE(cast<DIType>(resolve(Ty->getRef())));
|
||||
}
|
||||
// Emit imported_modules last so that the relevant context is already
|
||||
// available.
|
||||
for (auto *IE : CUNode->getImportedEntities())
|
||||
constructAndAddImportedEntityDIE(CU, IE);
|
||||
|
||||
// Stable sort to preserve the order of appearance of imported entities.
|
||||
// This is to avoid out-of-order processing of interdependent declarations
|
||||
// within the same scope, e.g. { namespace A = base; namespace B = A; }
|
||||
std::stable_sort(ScopesWithLocalDeclNodes.begin(),
|
||||
ScopesWithLocalDeclNodes.end(), less_first());
|
||||
}
|
||||
|
||||
// Tell MMI that we have debug info.
|
||||
|
Reference in New Issue
Block a user