diff --git a/SMPInstr.cpp b/SMPInstr.cpp index 76474b8ec37fcf5b05753eefa69ff4146cc0306a..e7fdc011ae39c13037fe59c82f1f39611c543a0c 100644 --- a/SMPInstr.cpp +++ b/SMPInstr.cpp @@ -6005,6 +6005,7 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) { } break; +#if 0 case SMP_SIGN_EXTEND: case SMP_ZERO_EXTEND: // Should we infer that all operands are NUMERIC? !!!???!!!! @@ -6013,6 +6014,7 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) { updated = true; } break; +#endif case SMP_ADDRESS_OF: // take effective address if (UNINIT == CurrRT->GetOperatorType()) { @@ -6023,6 +6025,8 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) { } break; + case SMP_SIGN_EXTEND: + case SMP_ZERO_EXTEND: case SMP_U_LEFT_SHIFT: // unsigned left shift case SMP_S_LEFT_SHIFT: // signed left shift case SMP_U_RIGHT_SHIFT: // unsigned right shift @@ -6105,6 +6109,7 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) { #if SMP_AGGRESSIVE_TYPE_INFERENCE if (UNINIT == CurrRT->GetRightTree()->GetOperatorType()) { CurrRT->GetRightTree()->SetOperatorType(NUMERIC, this); + updated = true; } #endif updated |= this->InferOperatorType(CurrRT->GetRightTree());