summaryrefslogtreecommitdiffstats
path: root/llvm/tools/obj2yaml/coff2yaml.cpp
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-08-14 08:46:54 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-08-14 08:46:54 +0000
commita0c6a3571422826e856002714d9bb008584fe8b3 (patch)
tree13316b7a2db6ed9d4bc4457853028a77e8eb56fd /llvm/tools/obj2yaml/coff2yaml.cpp
parentd4a99d87a20dae0507a95322fc903768f627185a (diff)
downloadbcm5719-llvm-a0c6a3571422826e856002714d9bb008584fe8b3.tar.gz
bcm5719-llvm-a0c6a3571422826e856002714d9bb008584fe8b3.zip
[llvm/Object] - Convert SectionRef::getName() to return Expected<>
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: 368812
Diffstat (limited to 'llvm/tools/obj2yaml/coff2yaml.cpp')
-rw-r--r--llvm/tools/obj2yaml/coff2yaml.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/llvm/tools/obj2yaml/coff2yaml.cpp b/llvm/tools/obj2yaml/coff2yaml.cpp
index a05840f80bb..e2b18807cda 100644
--- a/llvm/tools/obj2yaml/coff2yaml.cpp
+++ b/llvm/tools/obj2yaml/coff2yaml.cpp
@@ -112,10 +112,14 @@ initializeFileAndStringTable(const llvm::object::COFFObjectFile &Obj,
if (SC.hasStrings() && SC.hasChecksums())
break;
- StringRef SectionName;
- S.getName(SectionName);
+ Expected<StringRef> SectionNameOrErr = S.getName();
+ if (!SectionNameOrErr) {
+ consumeError(SectionNameOrErr.takeError());
+ continue;
+ }
+
ArrayRef<uint8_t> sectionData;
- if (SectionName != ".debug$S")
+ if ((*SectionNameOrErr) != ".debug$S")
continue;
const object::coff_section *COFFSection = Obj.getCOFFSection(S);
@@ -155,7 +159,12 @@ void COFFDumper::dumpSections(unsigned NumSections) {
for (const auto &ObjSection : Obj.sections()) {
const object::coff_section *COFFSection = Obj.getCOFFSection(ObjSection);
COFFYAML::Section NewYAMLSection;
- ObjSection.getName(NewYAMLSection.Name);
+
+ if (Expected<StringRef> NameOrErr = ObjSection.getName())
+ NewYAMLSection.Name = *NameOrErr;
+ else
+ consumeError(NameOrErr.takeError());
+
NewYAMLSection.Header.Characteristics = COFFSection->Characteristics;
NewYAMLSection.Header.VirtualAddress = COFFSection->VirtualAddress;
NewYAMLSection.Header.VirtualSize = COFFSection->VirtualSize;
OpenPOWER on IntegriCloud