Commit 494f30b5 authored by Lisandro Dalcin's avatar Lisandro Dalcin

array size could be expressions with known C compile-time values

parent 0e4a0434
...@@ -616,7 +616,6 @@ class CArrayType(CType): ...@@ -616,7 +616,6 @@ class CArrayType(CType):
is_array = 1 is_array = 1
def __init__(self, base_type, size): def __init__(self, base_type, size):
assert size is None or isinstance(size, int), repr(size)
self.base_type = base_type self.base_type = base_type
self.size = size self.size = size
if base_type is c_char_type: if base_type is c_char_type:
......
__doc__ = """ __doc__ = """
>>> test() >>> test1()
2 2
>>> test2()
0
>>> test3()
(2, 3)
""" """
def test(): def test1():
cdef int x[2][2] cdef int x[2][2]
x[0][0] = 1 x[0][0] = 1
x[0][1] = 2 x[0][1] = 2
...@@ -13,3 +17,18 @@ def test(): ...@@ -13,3 +17,18 @@ def test():
cdef int* f(int x[2][2]): cdef int* f(int x[2][2]):
return x[0] return x[0]
def test2():
cdef int a1[5]
cdef int a2[2+3]
return sizeof(a1) - sizeof(a2)
cdef enum:
MY_SIZE_A = 2
MY_SIZE_B = 3
def test3():
cdef int a[MY_SIZE_A]
cdef int b[MY_SIZE_B]
return sizeof(a)/sizeof(int), sizeof(b)/sizeof(int)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment