[JS IR BE] Support integer operation overflow

This commit is contained in:
Svyatoslav Kuzmich
2018-10-04 13:31:57 +03:00
parent 8013a56286
commit bad9534abd
22 changed files with 283 additions and 99 deletions
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1282
package foo
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1266
// MODULE: lib1
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1293
package foo
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1280
package foo
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1282
package foo
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1284
package foo
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1281
package foo
@@ -0,0 +1,31 @@
// EXPECTED_REACHABLE_NODES: 1284
package foo
fun box(): String {
val byteOne = 1.toByte()
val shortOne = 1.toShort()
var v: Int
v = maxInt() + byteOne
if (v != minInt()) return "fail1: $v"
v = minInt() - byteOne
if (v != maxInt()) return "fail2: $v"
v = maxInt() + shortOne
if (v != minInt()) return "fail3: $v"
v = minInt() - shortOne
if (v != maxInt()) return "fail4: $v"
v = maxInt() * Byte.MAX_VALUE
if (v != 2147483521) return "fail5: $v"
v = maxInt() * Short.MAX_VALUE
if (v != 2147450881) return "fail6: $v"
return "OK"
}
fun minInt() = Int.MIN_VALUE
fun maxInt() = Int.MAX_VALUE
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1289
package foo
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// EXPECTED_REACHABLE_NODES: 1289
package foo