diff options
author | George Rimar <grimar@accesssoftek.com> | 2019-08-14 11:10:11 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2019-08-14 11:10:11 +0000 |
commit | bcc00e1afbdc107e05b2977fde26053a52295dd1 (patch) | |
tree | 0ad3e328d73375164f99adb046a919273a128c1c /llvm/lib/XRay | |
parent | a11d302fa00ba423b09c94491bc868cb991ff379 (diff) | |
download | llvm-bcc00e1afbdc107e05b2977fde26053a52295dd1.zip llvm-bcc00e1afbdc107e05b2977fde26053a52295dd1.tar.gz llvm-bcc00e1afbdc107e05b2977fde26053a52295dd1.tar.bz2 |
Recommit r368812 "[llvm/Object] - Convert SectionRef::getName() to return Expected<>"
Changes: no changes. A fix for the clang code will be landed right on top.
Original commit message:
SectionRef::getName() returns std::error_code now.
Returning Expected<> instead has multiple benefits.
For example, it forces user to check the error returned.
Also Expected<> may keep a valuable string error message,
what is more useful than having a error code.
(Object\invalid.test was updated to show the new messages printed.)
This patch makes a change for all users to switch to Expected<> version.
Note: in a few places the error returned was ignored before my changes.
In such places I left them ignored. My intention was to convert the interface
used, and not to improve and/or the existent users in this patch.
(Though I think this is good idea for a follow-ups to revisit such places
and either remove consumeError calls or comment each of them to clarify why
it is OK to have them).
Differential revision: https://reviews.llvm.org/D66089
llvm-svn: 368826
Diffstat (limited to 'llvm/lib/XRay')
-rw-r--r-- | llvm/lib/XRay/InstrumentationMap.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/XRay/InstrumentationMap.cpp b/llvm/lib/XRay/InstrumentationMap.cpp index 7de953d..7453613 100644 --- a/llvm/lib/XRay/InstrumentationMap.cpp +++ b/llvm/lib/XRay/InstrumentationMap.cpp @@ -67,10 +67,11 @@ loadObj(StringRef Filename, object::OwningBinary<object::ObjectFile> &ObjFile, StringRef Contents = ""; const auto &Sections = ObjFile.getBinary()->sections(); auto I = llvm::find_if(Sections, [&](object::SectionRef Section) { - StringRef Name = ""; - if (Section.getName(Name)) - return false; - return Name == "xray_instr_map"; + Expected<StringRef> NameOrErr = Section.getName(); + if (NameOrErr) + return *NameOrErr == "xray_instr_map"; + consumeError(NameOrErr.takeError()); + return false; }); if (I == Sections.end()) |