Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r69931:598224bb2b1c
Date: 2014-03-13 15:08 +0100
http://bitbucket.org/pypy/pypy/changeset/598224bb2b1c/

Log:    Workaround for another clang issue

diff --git a/rpython/memory/gctransform/framework.py 
b/rpython/memory/gctransform/framework.py
--- a/rpython/memory/gctransform/framework.py
+++ b/rpython/memory/gctransform/framework.py
@@ -949,7 +949,10 @@
             # not untranslated-test-friendly, but good enough: we hide
             # our GC object inside an Address field.  It's not a correct
             # "void *" address, as it's in the wrong address_space, but
-            # we will force_cast it again in weakref_deref().
+            # we will force_cast it again in weakref_deref().  Note that
+            # it's done in two steps as a workaround for a clang issue(?).
+            v_instance = hop.genop("force_cast", [v_instance],
+                                   resulttype=lltype.Signed)
             opname = "force_cast"
         else:
             opname = "cast_ptr_to_adr"
@@ -968,6 +971,8 @@
                            resulttype=llmemory.Address)
         if self.translator.config.translation.stm:
             # see gct_weakref_create()
+            v_addr = hop.genop("force_cast", [v_addr],
+                               resulttype=lltype.Signed)
             hop.genop("force_cast", [v_addr],
                       resultvar=hop.spaceop.result)
         else:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to