diff options
author | Xing GUO <higuoxing@gmail.com> | 2020-05-02 14:04:04 +0800 |
---|---|---|
committer | Xing GUO <higuoxing@gmail.com> | 2020-05-02 14:04:44 +0800 |
commit | ff6a0b6a8ee74693e9711973028a8a327adf9cd5 (patch) | |
tree | 15d2e5e83be00a3237b788025c9afb5be46c945f /llvm/lib/XRay | |
parent | 8fa4d4a43cc762dd41018bd5959e0302cd908114 (diff) | |
download | llvm-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.cpp | 7 |
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}); |