When optimizing nonconst * const, cast the result to the type of the operator.
Per bug report by @Welcius. Fixes #8.
This commit is contained in:
@@ -132,4 +132,7 @@
|
||||
, llSin(-2147483648)
|
||||
, llSin(2147483647)
|
||||
, llSin(2147483647.0)
|
||||
, 2147483647 * 1.0 * 2
|
||||
, 3 * 1.0 / 2
|
||||
, 3 / 2
|
||||
]
|
||||
|
||||
@@ -128,4 +128,7 @@
|
||||
, 0.9713102
|
||||
, -0.9713102
|
||||
, -0.9713102
|
||||
, 4294967296.
|
||||
, 1.5
|
||||
, 1
|
||||
]
|
||||
14
unit_tests/regression.suite/issue-8.lsl
Normal file
14
unit_tests/regression.suite/issue-8.lsl
Normal file
@@ -0,0 +1,14 @@
|
||||
default{timer(){
|
||||
|
||||
integer x = llGetNumberOfPrims();
|
||||
integer y = llGetUnixTime();
|
||||
llOwnerSay((string)(x * 1.0 / y));
|
||||
llOwnerSay((string)(x / 1.0 / y));
|
||||
llOwnerSay((string)(x / (-1.0) / y));
|
||||
llOwnerSay((string)(x * 1.0 / y));
|
||||
llOwnerSay((string)(x * (-1.0) / y));
|
||||
llOwnerSay((string)(x * -2.0));
|
||||
llOwnerSay((string)(x * 0.0 + y));
|
||||
llOwnerSay((string)(x + 0.0 + y));
|
||||
|
||||
}}
|
||||
16
unit_tests/regression.suite/issue-8.out
Normal file
16
unit_tests/regression.suite/issue-8.out
Normal file
@@ -0,0 +1,16 @@
|
||||
default
|
||||
{
|
||||
timer()
|
||||
{
|
||||
integer x = llGetNumberOfPrims();
|
||||
integer y = llGetUnixTime();
|
||||
llOwnerSay((string)((float)x / y));
|
||||
llOwnerSay((string)((float)x / y));
|
||||
llOwnerSay((string)(-(float)x / y));
|
||||
llOwnerSay((string)((float)x / y));
|
||||
llOwnerSay((string)(-(float)x / y));
|
||||
llOwnerSay((string)(-(x + (float)x)));
|
||||
llOwnerSay((string)((float)y));
|
||||
llOwnerSay((string)((float)x + y));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user