diff --git a/src/ceval.cpp b/src/ceval.cpp index 0535bc43..73537281 100644 --- a/src/ceval.cpp +++ b/src/ceval.cpp @@ -119,11 +119,11 @@ __NEXT_STEP:; TARGET(LOAD_TRUE) PUSH(True); DISPATCH(); TARGET(LOAD_FALSE) PUSH(False); DISPATCH(); /*****************************************/ - TARGET(LOAD_INT_NEG_5) PUSH(PK_SMALL_INT(-5)); DISPATCH(); - TARGET(LOAD_INT_NEG_4) PUSH(PK_SMALL_INT(-4)); DISPATCH(); - TARGET(LOAD_INT_NEG_3) PUSH(PK_SMALL_INT(-3)); DISPATCH(); - TARGET(LOAD_INT_NEG_2) PUSH(PK_SMALL_INT(-2)); DISPATCH(); - TARGET(LOAD_INT_NEG_1) PUSH(PK_SMALL_INT(-1)); DISPATCH(); + TARGET(LOAD_INT_NEG_5) PUSH((PyObject*)-18); DISPATCH(); + TARGET(LOAD_INT_NEG_4) PUSH((PyObject*)-14); DISPATCH(); + TARGET(LOAD_INT_NEG_3) PUSH((PyObject*)-10); DISPATCH(); + TARGET(LOAD_INT_NEG_2) PUSH((PyObject*)-6); DISPATCH(); + TARGET(LOAD_INT_NEG_1) PUSH((PyObject*)-2); DISPATCH(); TARGET(LOAD_INT_0) PUSH(PK_SMALL_INT(0)); DISPATCH(); TARGET(LOAD_INT_1) PUSH(PK_SMALL_INT(1)); DISPATCH(); TARGET(LOAD_INT_2) PUSH(PK_SMALL_INT(2)); DISPATCH(); diff --git a/tests/01_int.py b/tests/01_int.py index 97743889..ce96102c 100644 --- a/tests/01_int.py +++ b/tests/01_int.py @@ -132,5 +132,26 @@ try: except SyntaxError: pass -for i in range(-5, 16+1): - assert i+1 == i*2//2+1 +assert int("-5") == -5 +assert int("-4") == -4 +assert int("-3") == -3 +assert int("-2") == -2 +assert int("-1") == -1 +assert int("0") == 0 +assert int("1") == 1 +assert int("2") == 2 +assert int("3") == 3 +assert int("4") == 4 +assert int("5") == 5 +assert int("6") == 6 +assert int("7") == 7 +assert int("8") == 8 +assert int("9") == 9 +assert int("10") == 10 +assert int("11") == 11 +assert int("12") == 12 +assert int("13") == 13 +assert int("14") == 14 +assert int("15") == 15 +assert int("16") == 16 +