forked from OSchip/llvm-project
Add support for constant arrays, from Anders Waldenborg!.
llvm-svn: 142477
This commit is contained in:
parent
89861066ed
commit
5fdc4de718
|
@ -1091,6 +1091,18 @@ class Type(Structure):
|
|||
"""
|
||||
return Type_get_result(self)
|
||||
|
||||
def get_array_element_type(self):
|
||||
"""
|
||||
Retrieve the type of the elements of the array type.
|
||||
"""
|
||||
return Type_get_array_element(self)
|
||||
|
||||
def get_array_size(self):
|
||||
"""
|
||||
Retrieve the size of the constant array.
|
||||
"""
|
||||
return Type_get_array_size(self)
|
||||
|
||||
## CIndex Objects ##
|
||||
|
||||
# CIndex objects (derived from ClangObject) are essentially lightweight
|
||||
|
@ -1688,6 +1700,14 @@ Type_get_result.argtypes = [Type]
|
|||
Type_get_result.restype = Type
|
||||
Type_get_result.errcheck = Type.from_result
|
||||
|
||||
Type_get_array_element = lib.clang_getArrayElementType
|
||||
Type_get_array_element.argtypes = [Type]
|
||||
Type_get_array_element.restype = Type
|
||||
Type_get_array_element.errcheck = Type.from_result
|
||||
|
||||
Type_get_array_size = lib.clang_getArraySize
|
||||
Type_get_array_size.argtype = [Type]
|
||||
Type_get_array_size.restype = c_longlong
|
||||
|
||||
# Index Functions
|
||||
Index_create = lib.clang_createIndex
|
||||
|
|
|
@ -90,6 +90,10 @@ def testConstantArray():
|
|||
fields = list(n.get_children())
|
||||
assert fields[0].spelling == 'A'
|
||||
assert fields[0].type.kind == TypeKind.CONSTANTARRAY
|
||||
assert fields[0].type.get_array_element_type() is not None
|
||||
assert fields[0].type.get_array_element_type().kind == TypeKind.POINTER
|
||||
assert fields[0].type.get_array_size() == 2
|
||||
|
||||
break
|
||||
else:
|
||||
assert False, "Didn't find teststruct??"
|
||||
|
|
Loading…
Reference in New Issue