mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-08 21:47:23 +00:00
If there is not any debug info available for any global variables and any subprograms then there is not any debug info to emit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65352 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
15cab2817b
commit
53cac18cca
@ -2826,11 +2826,13 @@ private:
|
||||
}
|
||||
|
||||
/// ConstructGlobalVariableDIEs - Create DIEs for each of the externally
|
||||
/// visible global variables.
|
||||
void ConstructGlobalVariableDIEs() {
|
||||
/// visible global variables. Return true if at least one global DIE is
|
||||
/// created.
|
||||
bool ConstructGlobalVariableDIEs() {
|
||||
std::string GVName = "llvm.dbg.global_variables";
|
||||
std::vector<GlobalVariable*> Result;
|
||||
getGlobalVariablesUsing(*M, GVName, Result);
|
||||
bool result = false;
|
||||
for (std::vector<GlobalVariable *>::iterator GVI = Result.begin(),
|
||||
GVE = Result.end(); GVI != GVE; ++GVI) {
|
||||
DIGlobalVariable DI_GV(*GVI);
|
||||
@ -2853,22 +2855,24 @@ private:
|
||||
|
||||
//Add to map.
|
||||
Slot = VariableDie;
|
||||
|
||||
//Add to context owner.
|
||||
DW_Unit->getDie()->AddChild(VariableDie);
|
||||
|
||||
//Expose as global. FIXME - need to check external flag.
|
||||
DW_Unit->AddGlobal(DI_GV.getName(), VariableDie);
|
||||
|
||||
if (!result)
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// ConstructSubprograms - Create DIEs for each of the externally visible
|
||||
/// subprograms.
|
||||
void ConstructSubprograms() {
|
||||
|
||||
/// subprograms. Return true if at least one subprogram DIE is created.
|
||||
bool ConstructSubprograms() {
|
||||
std::string SPName = "llvm.dbg.subprograms";
|
||||
std::vector<GlobalVariable*> Result;
|
||||
getGlobalVariablesUsing(*M, SPName, Result);
|
||||
bool result = false;
|
||||
for (std::vector<GlobalVariable *>::iterator RI = Result.begin(),
|
||||
RE = Result.end(); RI != RE; ++RI) {
|
||||
|
||||
@ -2894,7 +2898,11 @@ private:
|
||||
Unit->getDie()->AddChild(SubprogramDie);
|
||||
//Expose as global.
|
||||
Unit->AddGlobal(SP.getName(), SubprogramDie);
|
||||
|
||||
if (!result)
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public:
|
||||
@ -2930,16 +2938,21 @@ public:
|
||||
if (DW_CUs.empty())
|
||||
return;
|
||||
|
||||
// Create DIEs for each of the externally visible global variables.
|
||||
bool globalDIEs = ConstructGlobalVariableDIEs();
|
||||
|
||||
// Create DIEs for each of the externally visible subprograms.
|
||||
bool subprogramDIEs = ConstructSubprograms();
|
||||
|
||||
// If there is not any debug info available for any global variables
|
||||
// and any subprograms then there is not any debug info to emit.
|
||||
if (!globalDIEs && !subprogramDIEs)
|
||||
return;
|
||||
|
||||
MMI = mmi;
|
||||
shouldEmit = true;
|
||||
MMI->setDebugInfoAvailability(true);
|
||||
|
||||
// Create DIEs for each of the externally visible global variables.
|
||||
ConstructGlobalVariableDIEs();
|
||||
|
||||
// Create DIEs for each of the externally visible subprograms.
|
||||
ConstructSubprograms();
|
||||
|
||||
// Prime section data.
|
||||
SectionMap.insert(TAI->getTextSection());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user