mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
Propagation of data-types across signed comparisons
This commit is contained in:
parent
c524ecfbe8
commit
193ad764e5
3 changed files with 38 additions and 0 deletions
|
@ -4305,6 +4305,8 @@ bool ActionInferTypes::propagateGoodEdge(PcodeOp *op,int4 inslot,int4 outslot,Va
|
|||
case CPUI_MULTIEQUAL:
|
||||
if ((inslot!=-1)&&(outslot!=-1)) return false; // Must propagate input <-> output
|
||||
break;
|
||||
case CPUI_INT_SLESS:
|
||||
case CPUI_INT_SLESSEQUAL:
|
||||
case CPUI_INT_LESS:
|
||||
case CPUI_INT_LESSEQUAL:
|
||||
if ((inslot==-1)||(outslot==-1)) return false; // Must propagate input <-> input
|
||||
|
@ -4400,6 +4402,11 @@ bool ActionInferTypes::propagateTypeEdge(TypeFactory *typegrp,PcodeOp *op,int4 i
|
|||
else
|
||||
newtype = alttype;
|
||||
break;
|
||||
case CPUI_INT_SLESS:
|
||||
case CPUI_INT_SLESSEQUAL:
|
||||
if (alttype->getMetatype() != TYPE_INT) return false; // Only propagate signed things
|
||||
newtype = alttype;
|
||||
break;
|
||||
case CPUI_NEW:
|
||||
{
|
||||
Varnode *invn = op->getIn(0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue