don't use an intermediate value for fp coercion
This commit is contained in:
parent
c753db4f59
commit
cef18ad49e
27
expression.c
27
expression.c
|
@ -276,34 +276,23 @@ unsigned long ExpressionCoerceUnsignedInteger(struct Value *Val)
|
||||||
|
|
||||||
double ExpressionCoerceFP(struct Value *Val)
|
double ExpressionCoerceFP(struct Value *Val)
|
||||||
{
|
{
|
||||||
int IntVal;
|
|
||||||
unsigned UnsignedVal;
|
|
||||||
|
|
||||||
switch (Val->Typ->Base) {
|
switch (Val->Typ->Base) {
|
||||||
case TypeInt:
|
case TypeInt:
|
||||||
IntVal = Val->Val->Integer;
|
return (double)Val->Val->Integer;
|
||||||
return (double)IntVal;
|
|
||||||
case TypeChar:
|
case TypeChar:
|
||||||
IntVal = Val->Val->Character;
|
return (double)Val->Val->Character;
|
||||||
return (double)IntVal;
|
|
||||||
case TypeShort:
|
case TypeShort:
|
||||||
IntVal = Val->Val->ShortInteger;
|
return (double)Val->Val->ShortInteger;
|
||||||
return (double)IntVal;
|
|
||||||
case TypeLong:
|
case TypeLong:
|
||||||
IntVal = Val->Val->LongInteger;
|
return (double)Val->Val->LongInteger;
|
||||||
return (double)IntVal;
|
|
||||||
case TypeUnsignedInt:
|
case TypeUnsignedInt:
|
||||||
UnsignedVal = Val->Val->UnsignedInteger;
|
return (double)Val->Val->UnsignedInteger;
|
||||||
return (double)UnsignedVal;
|
|
||||||
case TypeUnsignedShort:
|
case TypeUnsignedShort:
|
||||||
UnsignedVal = Val->Val->UnsignedShortInteger;
|
return (double)Val->Val->UnsignedShortInteger;
|
||||||
return (double)UnsignedVal;
|
|
||||||
case TypeUnsignedLong:
|
case TypeUnsignedLong:
|
||||||
UnsignedVal = Val->Val->UnsignedLongInteger;
|
return (double)Val->Val->UnsignedLongInteger;
|
||||||
return (double)UnsignedVal;
|
|
||||||
case TypeUnsignedChar:
|
case TypeUnsignedChar:
|
||||||
UnsignedVal = Val->Val->UnsignedCharacter;
|
return (double)Val->Val->UnsignedCharacter;
|
||||||
return (double)UnsignedVal;
|
|
||||||
case TypeFP:
|
case TypeFP:
|
||||||
return Val->Val->FP;
|
return Val->Val->FP;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue