forked from OSchip/llvm-project
[DWARF5] Only fallback to manual index if no entry was found
If we succeed at gathering global variables for a compile unit, there is no need to fallback to generating a manual index. Reviewed By: jankratochvil Differential Revision: https://reviews.llvm.org/D106355
This commit is contained in:
parent
416f3ff803
commit
2e9853e0e9
|
@ -125,6 +125,7 @@ void DebugNamesDWARFIndex::GetGlobalVariables(
|
|||
void DebugNamesDWARFIndex::GetGlobalVariables(
|
||||
const DWARFUnit &cu, llvm::function_ref<bool(DWARFDIE die)> callback) {
|
||||
uint64_t cu_offset = cu.GetOffset();
|
||||
bool found_entry_for_cu = false;
|
||||
for (const DebugNames::NameIndex &ni: *m_debug_names_up) {
|
||||
for (DebugNames::NameTableEntry nte: ni) {
|
||||
uint64_t entry_offset = nte.getEntryOffset();
|
||||
|
@ -135,6 +136,7 @@ void DebugNamesDWARFIndex::GetGlobalVariables(
|
|||
if (entry_or->getCUOffset() != cu_offset)
|
||||
continue;
|
||||
|
||||
found_entry_for_cu = true;
|
||||
if (!ProcessEntry(*entry_or, callback,
|
||||
llvm::StringRef(nte.getString())))
|
||||
return;
|
||||
|
@ -142,8 +144,10 @@ void DebugNamesDWARFIndex::GetGlobalVariables(
|
|||
MaybeLogLookupError(entry_or.takeError(), ni, nte.getString());
|
||||
}
|
||||
}
|
||||
|
||||
m_fallback.GetGlobalVariables(cu, callback);
|
||||
// If no name index for that particular CU was found, fallback to
|
||||
// creating the manual index.
|
||||
if (!found_entry_for_cu)
|
||||
m_fallback.GetGlobalVariables(cu, callback);
|
||||
}
|
||||
|
||||
void DebugNamesDWARFIndex::GetCompleteObjCClass(
|
||||
|
|
Loading…
Reference in New Issue