aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/XRay
diff options
context:
space:
mode:
authorXing GUO <higuoxing@gmail.com>2020-05-02 14:04:04 +0800
committerXing GUO <higuoxing@gmail.com>2020-05-02 14:04:44 +0800
commitff6a0b6a8ee74693e9711973028a8a327adf9cd5 (patch)
tree15d2e5e83be00a3237b788025c9afb5be46c945f /llvm/lib/XRay
parent8fa4d4a43cc762dd41018bd5959e0302cd908114 (diff)
downloadllvm-ff6a0b6a8ee74693e9711973028a8a327adf9cd5.zip
llvm-ff6a0b6a8ee74693e9711973028a8a327adf9cd5.tar.gz
llvm-ff6a0b6a8ee74693e9711973028a8a327adf9cd5.tar.bz2
[Object] Change ObjectFile::getSymbolValue() return type to Expected<uint64_t>
Summary: In D77860, we have changed `getSymbolFlags()` return type to `Expected<uint32_t>`. This change helps bubble the error further up the stack. Reviewers: jhenderson, grimar, JDevlieghere, MaskRay Reviewed By: jhenderson Subscribers: hiraditya, MaskRay, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79075
Diffstat (limited to 'llvm/lib/XRay')
-rw-r--r--llvm/lib/XRay/InstrumentationMap.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/XRay/InstrumentationMap.cpp b/llvm/lib/XRay/InstrumentationMap.cpp
index b095d71..cadaa4af 100644
--- a/llvm/lib/XRay/InstrumentationMap.cpp
+++ b/llvm/lib/XRay/InstrumentationMap.cpp
@@ -114,8 +114,11 @@ loadObj(StringRef Filename, object::OwningBinary<object::ObjectFile> &ObjFile,
if (SupportsRelocation && SupportsRelocation(Reloc.getType())) {
auto AddendOrErr = object::ELFRelocationRef(Reloc).getAddend();
auto A = AddendOrErr ? *AddendOrErr : 0;
- uint64_t resolved = Resolver(Reloc, Reloc.getSymbol()->getValue(), A);
- Relocs.insert({Reloc.getOffset(), resolved});
+ Expected<uint64_t> ValueOrErr = Reloc.getSymbol()->getValue();
+ if (!ValueOrErr)
+ // TODO: Test this error.
+ return ValueOrErr.takeError();
+ Relocs.insert({Reloc.getOffset(), Resolver(Reloc, *ValueOrErr, A)});
} else if (Reloc.getType() == RelativeRelocation) {
if (auto AddendOrErr = object::ELFRelocationRef(Reloc).getAddend())
Relocs.insert({Reloc.getOffset(), *AddendOrErr});