>>= should be unsigned when the left operand is unsigned int. The right
operand isn't important here.
This commit is contained in:
Alexey Frunze
2014-12-13 01:06:53 -08:00
parent 8b099bcf76
commit 3bb914c8b4

View File

@@ -4215,9 +4215,11 @@ int exprval(int* idx, int* ExprTypeSynPtr, int* ConstExpr)
{ {
case tokAssignDiv: t = tokAssignUDiv; break; case tokAssignDiv: t = tokAssignUDiv; break;
case tokAssignMod: t = tokAssignUMod; break; case tokAssignMod: t = tokAssignUMod; break;
case tokAssignRSh: t = tokAssignURSh; break; case tokAssignRSh:
if (SyntaxStack[*ExprTypeSynPtr][0] == tokUnsigned)
t = tokAssignURSh;
break;
} }
if (t != tok)
stack[oldIdxRight + 1 - (oldSpRight - sp)][0] = t; stack[oldIdxRight + 1 - (oldSpRight - sp)][0] = t;
} }
@@ -8152,4 +8154,3 @@ int main(int argc, char** argv)
return 0; return 0;
} }