summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-rtdyld
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-02 20:55:21 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-02 20:55:21 +0000
commit5d0c2ffadf84839b951f12a23a163acbd8162d05 (patch)
tree664f4d3c3de6e77a695a2feb4555d261cfc9d9ab /llvm/tools/llvm-rtdyld
parent4dc5adc731a7a157e06c78295de0f1b41846edb3 (diff)
downloadbcm5719-llvm-5d0c2ffadf84839b951f12a23a163acbd8162d05.tar.gz
bcm5719-llvm-5d0c2ffadf84839b951f12a23a163acbd8162d05.zip
Return ErrorOr from SymbolRef::getName.
This function can really fail since the string table offset can be out of bounds. Using ErrorOr makes sure the error is checked. Hopefully a lot of the boilerplate code in tools/* can go away once we have a diagnostic manager in Object. llvm-svn: 241297
Diffstat (limited to 'llvm/tools/llvm-rtdyld')
-rw-r--r--llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp b/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
index 3b97f70e9a3..98c6f5c4399 100644
--- a/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
+++ b/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
@@ -266,10 +266,10 @@ static int printLineInfoForInput(bool LoadObjects, bool UseDebugObj) {
for (const auto &P : SymAddr) {
object::SymbolRef Sym = P.first;
if (Sym.getType() == object::SymbolRef::ST_Function) {
- StringRef Name;
- uint64_t Addr;
- if (Sym.getName(Name))
+ ErrorOr<StringRef> Name = Sym.getName();
+ if (!Name)
continue;
+ uint64_t Addr;
if (Sym.getAddress(Addr))
continue;
@@ -288,7 +288,8 @@ static int printLineInfoForInput(bool LoadObjects, bool UseDebugObj) {
Addr += SectionLoadAddress - Sec->getAddress();
}
- outs() << "Function: " << Name << ", Size = " << Size << ", Addr = " << Addr << "\n";
+ outs() << "Function: " << *Name << ", Size = " << Size
+ << ", Addr = " << Addr << "\n";
DILineInfoTable Lines = Context->getLineInfoForAddressRange(Addr, Size);
DILineInfoTable::iterator Begin = Lines.begin();
OpenPOWER on IntegriCloud