diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc index b479dc95d5..5ea9bbff05 100644 --- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc +++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc @@ -7230,7 +7230,7 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data) mask <<= 8*((int4)op->getIn(1)->getOffset()); bool aggressive = outvn->isPtrFlow(); if (!aggressive) { - if (mask != vn->getConsume()) return 0; + if ((vn->getConsume() & mask) != vn->getConsume()) return 0; if (op->getOut()->hasNoDescend()) return 0; } SubvariableFlow subflow(&data,vn,mask,aggressive,false);