[pypy-svn] r77195 - pypy/trunk/pypy/translator

arigo at codespeak.net arigo at codespeak.net
Mon Sep 20 12:17:39 CEST 2010


Author: arigo
Date: Mon Sep 20 12:17:38 2010
New Revision: 77195

Modified:
   pypy/trunk/pypy/translator/exceptiontransform.py
Log:
Fix, as shown by test_transformed_gc.TestMarkCompactGC.test_llinterp_dict.


Modified: pypy/trunk/pypy/translator/exceptiontransform.py
==============================================================================
--- pypy/trunk/pypy/translator/exceptiontransform.py	(original)
+++ pypy/trunk/pypy/translator/exceptiontransform.py	Mon Sep 20 12:17:38 2010
@@ -277,7 +277,9 @@
               block.exits[0].target is graph.returnblock and
               len(block.operations) and
               (block.exits[0].args[0].concretetype is lltype.Void or
-               block.exits[0].args[0] is block.operations[-1].result)):
+               block.exits[0].args[0] is block.operations[-1].result) and
+              block.operations[-1].opname not in ('malloc',     # special cases
+                                                  'malloc_nonmovable')):
             last_operation -= 1
         lastblock = block
         for i in range(last_operation, -1, -1):
@@ -466,6 +468,9 @@
             c_flags = spaceop.args[1]
             c_flags.value = c_flags.value.copy()
             spaceop.args[1].value['zero'] = True
+        # NB. when inserting more special-cases here, keep in mind that
+        # you also need to list the opnames in transform_block()
+        # (see "special cases")
 
         if insert_zeroing_op:
             if normalafterblock is None:



More information about the Pypy-commit mailing list