python: Fix check for disasm creation failure
authorAnders Waldenborg <anders@0x63.nu>
Sun, 17 Nov 2013 15:40:57 +0000 (15:40 +0000)
committerAnders Waldenborg <anders@0x63.nu>
Sun, 17 Nov 2013 15:40:57 +0000 (15:40 +0000)
Check should be for pointer being NULL, not what it points to.

Also adds a test for this case.

Reviewed By: indygreg

Differential Revision: http://llvm-reviews.chandlerc.com/D1878

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194965 91177308-0d34-0410-b5e6-96231b3b80d8

bindings/python/llvm/disassembler.py
bindings/python/llvm/tests/test_disassembler.py

index 9e781aef8f2160d1af2fb50859d2a4b5f37509da..f2df275bf4a0969cb8bc741919817495deee261c 100644 (file)
@@ -75,7 +75,7 @@ class Disassembler(LLVMObject):
 
         ptr = lib.LLVMCreateDisasm(c_char_p(triple), c_void_p(None), c_int(0),
                 callbacks['op_info'](0), callbacks['symbol_lookup'](0))
-        if not ptr.contents:
+        if not ptr:
             raise Exception('Could not obtain disassembler for triple: %s' %
                             triple)
 
index 46d12f7056267d629024160435f21f58d33f9000..e960dc0ba9ca6e6c4feb60484ba84278f51c870c 100644 (file)
@@ -16,6 +16,10 @@ class TestDisassembler(TestBase):
         self.assertEqual(count, 3)
         self.assertEqual(s, '\tjcxz\t-127')
 
+    def test_nonexistant_triple(self):
+        with self.assertRaisesRegexp(Exception, "Could not obtain disassembler for triple"):
+            Disassembler("nonexistant-triple-raises")
+
     def test_get_instructions(self):
         sequence = '\x67\xe3\x81\x01\xc7' # jcxz -127; addl %eax, %edi