Skip to content

Commit 563e29d

Browse files
authored
[mypyc] Fix test case testI64Cast on 32-bit architectures (#14691)
Add 64-bit and 32-bit variants of the test. Fixes #14633.
1 parent ad82257 commit 563e29d

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

mypyc/test-data/irbuild-i64.test

+34-1
Original file line numberDiff line numberDiff line change
@@ -1770,7 +1770,7 @@ L1:
17701770
L2:
17711771
return 1
17721772

1773-
[case testI64Cast]
1773+
[case testI64Cast_64bit]
17741774
from typing import cast
17751775
from mypy_extensions import i64
17761776

@@ -1811,6 +1811,39 @@ L2:
18111811
L3:
18121812
return r3
18131813

1814+
[case testI64Cast_32bit]
1815+
from typing import cast
1816+
from mypy_extensions import i64
1817+
1818+
def cast_int(x: int) -> i64:
1819+
return cast(i64, x)
1820+
[out]
1821+
def cast_int(x):
1822+
x :: int
1823+
r0 :: native_int
1824+
r1 :: bit
1825+
r2, r3, r4 :: int64
1826+
r5 :: ptr
1827+
r6 :: c_ptr
1828+
r7 :: int64
1829+
L0:
1830+
r0 = x & 1
1831+
r1 = r0 == 0
1832+
if r1 goto L1 else goto L2 :: bool
1833+
L1:
1834+
r2 = extend signed x: builtins.int to int64
1835+
r3 = r2 >> 1
1836+
r4 = r3
1837+
goto L3
1838+
L2:
1839+
r5 = x ^ 1
1840+
r6 = r5
1841+
r7 = CPyLong_AsInt64(r6)
1842+
r4 = r7
1843+
keep_alive x
1844+
L3:
1845+
return r4
1846+
18141847
[case testI64ExplicitConversionFromVariousTypes]
18151848
from mypy_extensions import i64
18161849

0 commit comments

Comments
 (0)