diff options
| author | Alexey Lapshin <a.v.lapshin@mail.ru> | 2019-03-01 10:15:18 +0000 |
|---|---|---|
| committer | Alexey Lapshin <a.v.lapshin@mail.ru> | 2019-03-01 10:15:18 +0000 |
| commit | b0224b1f1d06987c56a5a57fd5ccaec0c2abb151 (patch) | |
| tree | ec029838c1f06f35840ac077ba237ea0e812ce12 | |
| parent | 54829ec5d037e59f07962884bcc6c21441e60f01 (diff) | |
| download | bcm5719-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.cpp | 15 |
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; |

