summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Lapshin <a.v.lapshin@mail.ru>2019-03-01 10:15:18 +0000
committerAlexey Lapshin <a.v.lapshin@mail.ru>2019-03-01 10:15:18 +0000
commitb0224b1f1d06987c56a5a57fd5ccaec0c2abb151 (patch)
treeec029838c1f06f35840ac077ba237ea0e812ce12
parent54829ec5d037e59f07962884bcc6c21441e60f01 (diff)
downloadbcm5719-llvm-b0224b1f1d06987c56a5a57fd5ccaec0c2abb151.tar.gz
bcm5719-llvm-b0224b1f1d06987c56a5a57fd5ccaec0c2abb151.zip
Attempt to fix buildbot after r354972 [#2]. NFCI.
llvm-svn: 355192
-rw-r--r--llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
index 63f9693562b..9a39c3019cd 100644
--- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
+++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
@@ -201,7 +201,20 @@ static bool parseCommand(StringRef InputString, bool &IsData,
static uint64_t getModuleSectionIndexForAddress(const std::string &ModuleName,
uint64_t Address) {
- Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(ModuleName);
+ // following ModuleName processing was copied from
+ // LLVMSymbolizer::getOrCreateModuleInfo().
+ // it needs to be refactored to avoid code duplication.
+ std::string BinaryName = ModuleName;
+ size_t ColonPos = ModuleName.find_last_of(':');
+ // Verify that substring after colon form a valid arch name.
+ if (ColonPos != std::string::npos) {
+ std::string ArchStr = ModuleName.substr(ColonPos + 1);
+ if (Triple(ArchStr).getArch() != Triple::UnknownArch) {
+ BinaryName = ModuleName.substr(0, ColonPos);
+ }
+ }
+
+ Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(BinaryName);
if (error(BinaryOrErr))
return object::SectionedAddress::UndefSection;
OpenPOWER on IntegriCloud