JVM: Fix constant folding for unsigned values

This commit is contained in:
Steven Schäfer
2021-04-20 21:18:30 +02:00
committed by Dmitry Petrov
parent 732405895f
commit d3d4e94cd6
12 changed files with 99 additions and 20 deletions
@@ -1,5 +1,4 @@
// WITH_RUNTIME
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND: WASM
val a = "INT " + 0x8fffffffU
@@ -0,0 +1,42 @@
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: WASM
const val a = "INT " + 0x8fffffffU
const val b = "BYTE " + 0x8ffU
const val c = "LONG " + 0xffff_ffff_ffffU
const val uint = 0x8fffffffU
const val ubyte = 0x8ffU
const val ulong = 0xffff_ffff_ffffU
const val aa = "INT " + uint
const val bb = "BYTE " + ubyte
const val cc = "LONG " + ulong
fun box(): String {
if (a != "INT 2415919103") {
return "FAIL 0: $a"
}
if (aa != "INT 2415919103") {
return "FAIL 1: $aa"
}
if (b != "BYTE 2303") {
return "FAIL 2: $b"
}
if (bb != "BYTE 2303") {
return "FAIL 3: $bb"
}
if (c != "LONG 281474976710655") {
return "FAIL 4: $c"
}
if (cc != "LONG 281474976710655") {
return "FAIL 5: $cc"
}
return "OK"
}