forked from OSchip/llvm-project
[AMDGPU] return Fail instead of SolfFail from addOperand()
addOperand() method of AMDGPU disassembler returns SoftFail on error. All instances which may lead to that place are an impossible encdoing, not something which is possible to encode, but semantically incorrect as described for SoftFail. Then tablegen generates a check of the following form: if (Decode...(..) == MCDisassembler::Fail) { return MCDisassembler::Fail; } Since we can only return Success and SoftFail that is dead code as detected by the static code analyzer. Solution: return Fail as it should be. See https://bugs.llvm.org/show_bug.cgi?id=43886 Differential Revision: https://reviews.llvm.org/D69819
This commit is contained in:
parent
87e0cb4f1a
commit
de56a89072
|
@ -73,7 +73,7 @@ addOperand(MCInst &Inst, const MCOperand& Opnd) {
|
|||
Inst.addOperand(Opnd);
|
||||
return Opnd.isValid() ?
|
||||
MCDisassembler::Success :
|
||||
MCDisassembler::SoftFail;
|
||||
MCDisassembler::Fail;
|
||||
}
|
||||
|
||||
static int insertNamedMCOperand(MCInst &MI, const MCOperand &Op,
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
# RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s 2>&1 | FileCheck -check-prefix=GCN %s
|
||||
|
||||
# GCN: warning: invalid instruction encoding
|
||||
0xdf,0x00,0x00,0x02
|
Loading…
Reference in New Issue