Fix CompareInstruction.predicate
This commit is contained in:
parent
5b2b878f24
commit
a0eb03b239
2 changed files with 67 additions and 2 deletions
|
|
@ -1302,6 +1302,57 @@ class TestArgAttr(TestCase):
|
|||
|
||||
tests.append(TestArgAttr)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
class TestSwitch(TestCase):
|
||||
def test_arg_attr(self):
|
||||
m = Module.new('oifjda')
|
||||
fnty = Type.function(Type.void(), [Type.int()])
|
||||
func = m.add_function(fnty, 'foo')
|
||||
bb = func.append_basic_block('')
|
||||
bbdef = func.append_basic_block('')
|
||||
bbsw1 = func.append_basic_block('')
|
||||
bbsw2 = func.append_basic_block('')
|
||||
bldr = Builder.new(bb)
|
||||
|
||||
swt = bldr.switch(func.args[0], bbdef, n=2)
|
||||
swt.add_case(Constant.int(Type.int(), 0), bbsw1)
|
||||
swt.add_case(Constant.int(Type.int(), 1), bbsw2)
|
||||
|
||||
bldr.position_at_end(bbsw1)
|
||||
bldr.ret_void()
|
||||
|
||||
bldr.position_at_end(bbsw2)
|
||||
bldr.ret_void()
|
||||
|
||||
bldr.position_at_end(bbdef)
|
||||
bldr.ret_void()
|
||||
|
||||
func.verify()
|
||||
|
||||
tests.append(TestSwitch)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
class TestCmp(TestCase):
|
||||
def test_arg_attr(self):
|
||||
m = Module.new('oifjda')
|
||||
fnty = Type.function(Type.void(), [Type.int()])
|
||||
func = m.add_function(fnty, 'foo')
|
||||
bb = func.append_basic_block('')
|
||||
bldr = Builder.new(bb)
|
||||
|
||||
cmpinst = bldr.icmp(lc.ICMP_ULE, func.args[0],
|
||||
Constant.int(Type.int(), 123))
|
||||
self.assertTrue(repr(cmpinst.predicate).startswith('ICMP_ULE'))
|
||||
self.assertEqual(cmpinst.predicate, lc.ICMP_ULE)
|
||||
bldr.ret_void()
|
||||
|
||||
func.verify()
|
||||
|
||||
tests.append(TestCmp)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def run(verbosity=1):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue