diff options
author | James Molloy <james.molloy@arm.com> | 2011-09-01 22:01:14 +0000 |
---|---|---|
committer | James Molloy <james.molloy@arm.com> | 2011-09-01 22:01:14 +0000 |
commit | 5ada2a7e27ff7247d2ef7c3338408733a264f976 (patch) | |
tree | 60cd3f3040ac32ed3eebaf296fb527d5c50d4cb9 /llvm/lib/MC/MCDisassembler/EDDisassembler.cpp | |
parent | 43ea78b48de5d61756a4d13d6d672796b6ef44a5 (diff) | |
download | bcm5719-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.cpp | 26 |
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 ®isterInfo) { |