Add isLayoutIdentical
This commit is contained in:
parent
22b5d4695c
commit
0b1abe7b26
3 changed files with 18 additions and 0 deletions
|
|
@ -895,6 +895,10 @@ class StructType(Type):
|
||||||
def is_opaque(self):
|
def is_opaque(self):
|
||||||
return self._ptr.isOpaque()
|
return self._ptr.isOpaque()
|
||||||
|
|
||||||
|
def is_layout_identical(self, other):
|
||||||
|
return self._ptr.isLayoutIdentical(other._ptr)
|
||||||
|
|
||||||
|
|
||||||
class ArrayType(Type):
|
class ArrayType(Type):
|
||||||
"""Represents an array type."""
|
"""Represents an array type."""
|
||||||
_type_ = api.llvm.ArrayType
|
_type_ = api.llvm.ArrayType
|
||||||
|
|
|
||||||
|
|
@ -1245,6 +1245,18 @@ class TestNamedMetaData(TestCase):
|
||||||
|
|
||||||
tests.append(TestNamedMetaData)
|
tests.append(TestNamedMetaData)
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class TestStruct(TestCase):
|
||||||
|
def test_struct_identical(self):
|
||||||
|
m = Module.new('test_struct_identical')
|
||||||
|
ta = Type.struct([Type.int(32), Type.float()], name='ta')
|
||||||
|
tb = Type.struct([Type.int(32), Type.float()])
|
||||||
|
self.assertTrue(ta.is_layout_identical(tb))
|
||||||
|
|
||||||
|
tests.append(TestStruct)
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
def run(verbosity=1):
|
def run(verbosity=1):
|
||||||
|
|
|
||||||
|
|
@ -214,6 +214,8 @@ class StructType:
|
||||||
cast(bool, Bool), # is packed
|
cast(bool, Bool), # is packed
|
||||||
).require_only(2)
|
).require_only(2)
|
||||||
|
|
||||||
|
isLayoutIdentical = Method(cast(Bool, bool), # identical?
|
||||||
|
ptr(StructType)) # other
|
||||||
|
|
||||||
isValidElementType = StaticMethod(cast(Bool, bool), ptr(Type))
|
isValidElementType = StaticMethod(cast(Bool, bool), ptr(Type))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue