Support MetaDataString, and correctly represent MetaData Values in _make_value

This commit is contained in:
Wladimir J. van der Laan 2012-09-12 21:11:33 +02:00
commit e2d8079b93
5 changed files with 31 additions and 3 deletions

View file

@ -16,7 +16,7 @@ else:
from llvm import __version__
from llvm.core import (Module, Type, GlobalVariable, Function, Builder,
Constant, MetaData)
Constant, MetaData, MetaDataString)
import llvm.passes as lp
import llvm.ee as le
@ -395,12 +395,13 @@ class TestMetaData(unittest.TestCase):
def test_metadata(self):
m = Module.new('a')
t = Type.int()
metadata = MetaData.get(m, [Constant.int(t, 100)])
metadata = MetaData.get(m, [Constant.int(t, 100), MetaDataString.get(m, 'abcdef')])
MetaData.add_named_operand(m, 'foo', metadata)
self.assertEqual(MetaData.get_named_operands(m, 'foo'), [metadata])
self.assertEqual(MetaData.get_named_operands(m, 'bar'), [])
self.assertEqual(len(metadata.operands), 1)
self.assertEqual(len(metadata.operands), 2)
self.assertEqual(metadata.operands[0].z_ext_value, 100)
self.assertEqual(metadata.operands[1].string, 'abcdef')
tests.append(TestMetaData)