summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFTargetInfo.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ELFTargetInfo.cpp b/lld/lib/ReaderWriter/ELF/ELFTargetInfo.cpp
index e9b171c35ec..b9443fc7fc2 100644
--- a/lld/lib/ReaderWriter/ELF/ELFTargetInfo.cpp
+++ b/lld/lib/ReaderWriter/ELF/ELFTargetInfo.cpp
@@ -98,16 +98,19 @@ ELFTargetInfo::parseFile(std::unique_ptr<MemoryBuffer> &mb,
std::vector<std::unique_ptr<File> > &result) const {
ScopedTask task(getDefaultDomain(), "parseFile");
error_code ec = _elfReader->parseFile(mb, result);
- if (ec) {
- // Not an ELF file, check file extension to see if it might be yaml
- StringRef path = mb->getBufferIdentifier();
- if (path.endswith(".objtxt"))
- ec = _yamlReader->parseFile(mb, result);
- if (ec)
- // Not a yaml file, assume it is a linkerscript
- ec = _linkerScriptReader->parseFile(mb, result);
+ if (!ec)
+ return ec;
+
+ // Not an ELF file, check file extension to see if it might be yaml
+ StringRef path = mb->getBufferIdentifier();
+ if (path.endswith(".objtxt")) {
+ ec = _yamlReader->parseFile(mb, result);
+ if (!ec)
+ return ec;
}
- return ec;
+
+ // Not a yaml file, assume it is a linkerscript
+ return _linkerScriptReader->parseFile(mb, result);
}
Writer &ELFTargetInfo::writer() const {
OpenPOWER on IntegriCloud