summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
diff options
context:
space:
mode:
authorMitch Phillips <mitchphillips@outlook.com>2017-10-23 20:54:01 +0000
committerMitch Phillips <mitchphillips@outlook.com>2017-10-23 20:54:01 +0000
commitd9af383d58ef8b0b4e9a65af862cae61d99ca44c (patch)
tree4ecba5d89201bcd8e168b2a19b9418e2c5cc013a /llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
parent8a0e4bc97283dfb9f101b5dc0aefd01dc0937b4f (diff)
downloadbcm5719-llvm-d9af383d58ef8b0b4e9a65af862cae61d99ca44c.tar.gz
bcm5719-llvm-d9af383d58ef8b0b4e9a65af862cae61d99ca44c.zip
Made llvm-cfi-verify not execute unit tests on non-x86 builds.
Patched out from D38427. Reviewers: vlad.tsyrklevich Reviewed By: vlad.tsyrklevich Subscribers: llvm-commits, kcc, pcc, mgorny Differential Revision: https://reviews.llvm.org/D39197 llvm-svn: 316375
Diffstat (limited to 'llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp')
-rw-r--r--llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp b/llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
index 8439a06a24d..761b2ab1037 100644
--- a/llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
+++ b/llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
@@ -54,7 +54,7 @@ Expected<FileAnalysis> FileAnalysis::Create(StringRef Filename) {
Analysis.Object = dyn_cast<object::ObjectFile>(Analysis.Binary.getBinary());
if (!Analysis.Object)
- return make_error<UnsupportedDisassembly>();
+ return make_error<UnsupportedDisassembly>("Failed to cast object");
Analysis.ObjectTriple = Analysis.Object->makeTriple();
Analysis.Features = Analysis.Object->getFeatures();
@@ -224,31 +224,28 @@ Error FileAnalysis::initialiseDisassemblyMembers() {
ObjectTarget =
TargetRegistry::lookupTarget(ArchName, ObjectTriple, ErrorString);
if (!ObjectTarget)
- return make_error<StringError>(Twine("Couldn't find target \"") +
- ObjectTriple.getTriple() +
- "\", failed with error: " + ErrorString,
- inconvertibleErrorCode());
+ return make_error<UnsupportedDisassembly>(
+ (Twine("Couldn't find target \"") + ObjectTriple.getTriple() +
+ "\", failed with error: " + ErrorString).str());
RegisterInfo.reset(ObjectTarget->createMCRegInfo(TripleName));
if (!RegisterInfo)
- return make_error<StringError>("Failed to initialise RegisterInfo.",
- inconvertibleErrorCode());
+ return make_error<UnsupportedDisassembly>(
+ "Failed to initialise RegisterInfo.");
AsmInfo.reset(ObjectTarget->createMCAsmInfo(*RegisterInfo, TripleName));
if (!AsmInfo)
- return make_error<StringError>("Failed to initialise AsmInfo.",
- inconvertibleErrorCode());
+ return make_error<UnsupportedDisassembly>("Failed to initialise AsmInfo.");
SubtargetInfo.reset(ObjectTarget->createMCSubtargetInfo(
TripleName, MCPU, Features.getString()));
if (!SubtargetInfo)
- return make_error<StringError>("Failed to initialise SubtargetInfo.",
- inconvertibleErrorCode());
+ return make_error<UnsupportedDisassembly>(
+ "Failed to initialise SubtargetInfo.");
MII.reset(ObjectTarget->createMCInstrInfo());
if (!MII)
- return make_error<StringError>("Failed to initialise MII.",
- inconvertibleErrorCode());
+ return make_error<UnsupportedDisassembly>("Failed to initialise MII.");
Context.reset(new MCContext(AsmInfo.get(), RegisterInfo.get(), &MOFI));
@@ -256,8 +253,8 @@ Error FileAnalysis::initialiseDisassemblyMembers() {
ObjectTarget->createMCDisassembler(*SubtargetInfo, *Context));
if (!Disassembler)
- return make_error<StringError>("No disassembler available for target",
- inconvertibleErrorCode());
+ return make_error<UnsupportedDisassembly>(
+ "No disassembler available for target");
MIA.reset(ObjectTarget->createMCInstrAnalysis(MII.get()));
@@ -341,9 +338,11 @@ void FileAnalysis::addInstruction(const Instr &Instruction) {
}
}
+UnsupportedDisassembly::UnsupportedDisassembly(StringRef Text) : Text(Text) {}
+
char UnsupportedDisassembly::ID;
void UnsupportedDisassembly::log(raw_ostream &OS) const {
- OS << "Dissassembling of non-objects not currently supported.\n";
+ OS << "Could not initialise disassembler: " << Text;
}
std::error_code UnsupportedDisassembly::convertToErrorCode() const {
OpenPOWER on IntegriCloud