aboutsummaryrefslogtreecommitdiff
path: root/source/Symbol/SymbolContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Symbol/SymbolContext.cpp')
-rw-r--r--source/Symbol/SymbolContext.cpp92
1 files changed, 22 insertions, 70 deletions
diff --git a/source/Symbol/SymbolContext.cpp b/source/Symbol/SymbolContext.cpp
index 8716f50a384d4..da00875bfa151 100644
--- a/source/Symbol/SymbolContext.cpp
+++ b/source/Symbol/SymbolContext.cpp
@@ -105,12 +105,12 @@ bool SymbolContext::DumpStopContext(Stream *s, ExecutionContextScope *exe_scope,
if (function != nullptr) {
SymbolContext inline_parent_sc;
Address inline_parent_addr;
- if (show_function_name == false) {
+ if (!show_function_name) {
s->Printf("<");
dumped_something = true;
} else {
ConstString name;
- if (show_function_arguments == false)
+ if (!show_function_arguments)
name = function->GetNameNoArguments();
if (!name)
name = function->GetName();
@@ -122,7 +122,7 @@ bool SymbolContext::DumpStopContext(Stream *s, ExecutionContextScope *exe_scope,
const addr_t function_offset =
addr.GetOffset() -
function->GetAddressRange().GetBaseAddress().GetOffset();
- if (show_function_name == false) {
+ if (!show_function_name) {
// Print +offset even if offset is 0
dumped_something = true;
s->Printf("+%" PRIu64 ">", function_offset);
@@ -171,7 +171,7 @@ bool SymbolContext::DumpStopContext(Stream *s, ExecutionContextScope *exe_scope,
}
}
} else if (symbol != nullptr) {
- if (show_function_name == false) {
+ if (!show_function_name) {
s->Printf("<");
dumped_something = true;
} else if (symbol->GetName()) {
@@ -184,7 +184,7 @@ bool SymbolContext::DumpStopContext(Stream *s, ExecutionContextScope *exe_scope,
if (addr.IsValid() && symbol->ValueIsAddress()) {
const addr_t symbol_offset =
addr.GetOffset() - symbol->GetAddressRef().GetOffset();
- if (show_function_name == false) {
+ if (!show_function_name) {
// Print +offset even if offset is 0
dumped_something = true;
s->Printf("+%" PRIu64 ">", symbol_offset);
@@ -393,12 +393,7 @@ bool lldb_private::operator==(const SymbolContext &lhs,
bool lldb_private::operator!=(const SymbolContext &lhs,
const SymbolContext &rhs) {
- return lhs.function != rhs.function || lhs.symbol != rhs.symbol ||
- lhs.module_sp.get() != rhs.module_sp.get() ||
- lhs.comp_unit != rhs.comp_unit ||
- lhs.target_sp.get() != rhs.target_sp.get() ||
- LineEntry::Compare(lhs.line_entry, rhs.line_entry) != 0 ||
- lhs.variable != rhs.variable;
+ return !(lhs == rhs);
}
bool SymbolContext::GetAddressRange(uint32_t scope, uint32_t range_idx,
@@ -801,14 +796,14 @@ bool SymbolContext::GetAddressRangeFromHereToEndLine(uint32_t end_line,
const Symbol *
SymbolContext::FindBestGlobalDataSymbol(const ConstString &name, Status &error) {
error.Clear();
-
+
if (!target_sp) {
return nullptr;
}
-
+
Target &target = *target_sp;
Module *module = module_sp.get();
-
+
auto ProcessMatches = [this, &name, &target, module]
(SymbolContextList &sc_list, Status &error) -> const Symbol* {
llvm::SmallVector<const Symbol *, 1> external_symbols;
@@ -820,7 +815,7 @@ SymbolContext::FindBestGlobalDataSymbol(const ConstString &name, Status &error)
if (sym_ctx.symbol) {
const Symbol *symbol = sym_ctx.symbol;
const Address sym_address = symbol->GetAddress();
-
+
if (sym_address.IsValid()) {
switch (symbol->GetType()) {
case eSymbolTypeData:
@@ -865,12 +860,12 @@ SymbolContext::FindBestGlobalDataSymbol(const ConstString &name, Status &error)
if (name == symbol->GetReExportedSymbolName() &&
module == reexport_module_sp.get())
return nullptr;
-
+
return FindBestGlobalDataSymbol(
symbol->GetReExportedSymbolName(), error);
}
} break;
-
+
case eSymbolTypeCode: // We already lookup functions elsewhere
case eSymbolTypeVariable:
case eSymbolTypeLocal:
@@ -898,7 +893,7 @@ SymbolContext::FindBestGlobalDataSymbol(const ConstString &name, Status &error)
}
}
}
-
+
if (external_symbols.size() > 1) {
StreamString ss;
ss.Printf("Multiple external symbols found for '%s'\n", name.AsCString());
@@ -925,32 +920,32 @@ SymbolContext::FindBestGlobalDataSymbol(const ConstString &name, Status &error)
return nullptr;
}
};
-
+
if (module) {
SymbolContextList sc_list;
module->FindSymbolsWithNameAndType(name, eSymbolTypeAny, sc_list);
const Symbol *const module_symbol = ProcessMatches(sc_list, error);
-
+
if (!error.Success()) {
return nullptr;
} else if (module_symbol) {
return module_symbol;
}
}
-
+
{
SymbolContextList sc_list;
target.GetImages().FindSymbolsWithNameAndType(name, eSymbolTypeAny,
sc_list);
const Symbol *const target_symbol = ProcessMatches(sc_list, error);
-
+
if (!error.Success()) {
return nullptr;
} else if (target_symbol) {
return target_symbol;
}
}
-
+
return nullptr; // no error; we just didn't find anything
}
@@ -999,7 +994,7 @@ bool SymbolContextSpecifier::AddSpecification(const char *spec_string,
break;
case eModuleSpecified: {
// See if we can find the Module, if so stick it in the SymbolContext.
- FileSpec module_file_spec(spec_string, false);
+ FileSpec module_file_spec(spec_string);
ModuleSpec module_spec(module_file_spec);
lldb::ModuleSP module_sp(
m_target_sp->GetImages().FindFirstModule(module_spec));
@@ -1013,7 +1008,7 @@ bool SymbolContextSpecifier::AddSpecification(const char *spec_string,
// CompUnits can't necessarily be resolved here, since an inlined function
// might show up in a number of CompUnits. Instead we just convert to a
// FileSpec and store it away.
- m_file_spec_ap.reset(new FileSpec(spec_string, false));
+ m_file_spec_ap.reset(new FileSpec(spec_string));
m_type |= eFileSpecified;
break;
case eLineStartSpecified:
@@ -1068,7 +1063,7 @@ bool SymbolContextSpecifier::SymbolContextMatches(SymbolContext &sc) {
if (m_module_sp.get() != sc.module_sp.get())
return false;
} else {
- FileSpec module_file_spec(m_module_spec, false);
+ FileSpec module_file_spec(m_module_spec);
if (!FileSpec::Equal(module_file_spec, sc.module_sp->GetFileSpec(),
false))
return false;
@@ -1259,7 +1254,7 @@ bool SymbolContextList::AppendIfUnique(const SymbolContext &sc,
}
if (merge_symbol_into_function && sc.symbol != nullptr &&
sc.comp_unit == nullptr && sc.function == nullptr &&
- sc.block == nullptr && sc.line_entry.IsValid() == false) {
+ sc.block == nullptr && !sc.line_entry.IsValid()) {
if (sc.symbol->ValueIsAddress()) {
for (pos = m_symbol_contexts.begin(); pos != end; ++pos) {
// Don't merge symbols into inlined function symbol contexts
@@ -1285,41 +1280,6 @@ bool SymbolContextList::AppendIfUnique(const SymbolContext &sc,
return true;
}
-bool SymbolContextList::MergeSymbolContextIntoFunctionContext(
- const SymbolContext &symbol_sc, uint32_t start_idx, uint32_t stop_idx) {
- if (symbol_sc.symbol != nullptr && symbol_sc.comp_unit == nullptr &&
- symbol_sc.function == nullptr && symbol_sc.block == nullptr &&
- symbol_sc.line_entry.IsValid() == false) {
- if (symbol_sc.symbol->ValueIsAddress()) {
- const size_t end = std::min<size_t>(m_symbol_contexts.size(), stop_idx);
- for (size_t i = start_idx; i < end; ++i) {
- const SymbolContext &function_sc = m_symbol_contexts[i];
- // Don't merge symbols into inlined function symbol contexts
- if (function_sc.block && function_sc.block->GetContainingInlinedBlock())
- continue;
-
- if (function_sc.function) {
- if (function_sc.function->GetAddressRange().GetBaseAddress() ==
- symbol_sc.symbol->GetAddressRef()) {
- // Do we already have a function with this symbol?
- if (function_sc.symbol == symbol_sc.symbol)
- return true; // Already have a symbol context with this symbol,
- // return true
-
- if (function_sc.symbol == nullptr) {
- // We successfully merged this symbol into an existing symbol
- // context
- m_symbol_contexts[i].symbol = symbol_sc.symbol;
- return true;
- }
- }
- }
- }
- }
- }
- return false;
-}
-
void SymbolContextList::Clear() { m_symbol_contexts.clear(); }
void SymbolContextList::Dump(Stream *s, Target *target) const {
@@ -1346,14 +1306,6 @@ bool SymbolContextList::GetContextAtIndex(size_t idx, SymbolContext &sc) const {
return false;
}
-bool SymbolContextList::GetLastContext(SymbolContext &sc) const {
- if (!m_symbol_contexts.empty()) {
- sc = m_symbol_contexts.back();
- return true;
- }
- return false;
-}
-
bool SymbolContextList::RemoveContextAtIndex(size_t idx) {
if (idx < m_symbol_contexts.size()) {
m_symbol_contexts.erase(m_symbol_contexts.begin() + idx);