Skip to content

Commit 583847b

Browse files
committed
Don't filter JumpAssist from switch analysis
1 parent 4b2a78b commit 583847b

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,10 +572,11 @@ bool Funcdata::earlyJumpTableFail(PcodeOp *op)
572572
OpCode opc = op->code();
573573
if (opc == CPUI_CALLOTHER) {
574574
int4 id = (int4)op->getIn(0)->getOffset();
575-
InjectedUserOp *userOp = dynamic_cast<InjectedUserOp *>(glb->userops.getOp(id));
576-
if (userOp != (InjectedUserOp *)0) {
575+
UserPcodeOp *userOp = glb->userops.getOp(id);
576+
if (dynamic_cast<InjectedUserOp *>(userOp) != (InjectedUserOp *)0)
577577
return false; // Don't try to back track through injection
578-
}
578+
if (dynamic_cast<JumpAssistOp *>(userOp) != (JumpAssistOp *)0)
579+
return false;
579580
if (outhit)
580581
return true; // Address formed via uninjected CALLOTHER, analysis will fail
581582
// Assume CALLOTHER will not interfere with address and continue backtracking

0 commit comments

Comments
 (0)