Don't test bitwise operations on operands that don't fit in u32.
The current behavior is undefined in C when converting the double to a u32, so the tests fail on some compilers. For now, I'm just removing those parts of the tests because I'm not sure what I want the behavior to be. Modulo? Truncate? Runtime error?
This commit is contained in:
@@ -2,14 +2,12 @@ System.print(0 >> 0) // expect: 0
|
||||
System.print(1 >> 0) // expect: 1
|
||||
System.print(0 >> 1) // expect: 0
|
||||
System.print(1 >> 1) // expect: 0
|
||||
System.print(2863311530 >> 1) // expect: 1431655765
|
||||
System.print(4042322160 >> 1) // expect: 2021161080
|
||||
System.print(0xaaaaaaaa >> 1) // expect: 1431655765
|
||||
System.print(0xf0f0f0f0 >> 1) // expect: 2021161080
|
||||
|
||||
// Max u32 value.
|
||||
System.print(4294967295 >> 1) // expect: 2147483647
|
||||
|
||||
// Past max u32 value.
|
||||
System.print(4294967296 >> 1) // expect: 0
|
||||
System.print(0xffffffff >> 1) // expect: 2147483647
|
||||
|
||||
// TODO: Negative numbers.
|
||||
// TODO: Floating-point numbers.
|
||||
// TODO: Numbers that don't fit in u32.
|
||||
|
||||
Reference in New Issue
Block a user