summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2011-09-01 22:01:14 +0000
committerJames Molloy <james.molloy@arm.com>2011-09-01 22:01:14 +0000
commit5ada2a7e27ff7247d2ef7c3338408733a264f976 (patch)
tree60cd3f3040ac32ed3eebaf296fb527d5c50d4cb9 /llvm/lib/MC/MCDisassembler/EDDisassembler.cpp
parent43ea78b48de5d61756a4d13d6d672796b6ef44a5 (diff)
downloadbcm5719-llvm-5ada2a7e27ff7247d2ef7c3338408733a264f976.tar.gz
bcm5719-llvm-5ada2a7e27ff7247d2ef7c3338408733a264f976.zip
Fix apparent build error caused by r138948 on certain versions of GCC with -Werror. Sorry for the inconvenience.
llvm-svn: 138973
Diffstat (limited to 'llvm/lib/MC/MCDisassembler/EDDisassembler.cpp')
-rw-r--r--llvm/lib/MC/MCDisassembler/EDDisassembler.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp b/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp
index 14d735dbc76..68a201b96a9 100644
--- a/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp
+++ b/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp
@@ -239,20 +239,28 @@ EDInst *EDDisassembler::createInst(EDByteReaderCallback byteReader,
MCInst* inst = new MCInst;
uint64_t byteSize;
- if (Disassembler->getInstruction(*inst, byteSize, memoryObject, address,
- ErrorStream) != MCDisassembler::Success) {
+ MCDisassembler::DecodeStatus S;
+ S = Disassembler->getInstruction(*inst, byteSize, memoryObject, address,
+ ErrorStream);
+ switch (S) {
+ case MCDisassembler::Fail:
+ case MCDisassembler::SoftFail:
// FIXME: Do something different on soft failure mode?
delete inst;
return NULL;
- }
- const llvm::EDInstInfo *thisInstInfo = NULL;
+
+ case MCDisassembler::Success: {
+ const llvm::EDInstInfo *thisInstInfo = NULL;
- if (InstInfos) {
- thisInstInfo = &InstInfos[inst->getOpcode()];
- }
+ if (InstInfos) {
+ thisInstInfo = &InstInfos[inst->getOpcode()];
+ }
- EDInst* sdInst = new EDInst(inst, byteSize, *this, thisInstInfo);
- return sdInst;
+ EDInst* sdInst = new EDInst(inst, byteSize, *this, thisInstInfo);
+ return sdInst;
+ }
+ }
+ return NULL;
}
void EDDisassembler::initMaps(const MCRegisterInfo &registerInfo) {
OpenPOWER on IntegriCloud