[pypy-svn] r26994 - in pypy/dist/pypy/translator/backendopt: . test

pedronis at codespeak.net pedronis at codespeak.net
Tue May 9 14:08:17 CEST 2006


Author: pedronis
Date: Tue May  9 14:08:16 2006
New Revision: 26994

Modified:
   pypy/dist/pypy/translator/backendopt/propagate.py
   pypy/dist/pypy/translator/backendopt/test/test_propagate.py
Log:
fix for typo and test.



Modified: pypy/dist/pypy/translator/backendopt/propagate.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/propagate.py	(original)
+++ pypy/dist/pypy/translator/backendopt/propagate.py	Tue May  9 14:08:16 2006
@@ -167,7 +167,7 @@
                 continue
             # don't fold stuff with exception handling
             if (block.exitswitch == c_last_exception and
-                i == len(block.operation) - 1):
+                i == len(block.operations) - 1):
                 continue
             if analyzer.analyze(op):
                 continue

Modified: pypy/dist/pypy/translator/backendopt/test/test_propagate.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/test/test_propagate.py	(original)
+++ pypy/dist/pypy/translator/backendopt/test/test_propagate.py	Tue May  9 14:08:16 2006
@@ -1,6 +1,7 @@
 import py
 from pypy.translator.translator import TranslationContext, graphof
 from pypy.translator.backendopt.propagate import *
+from pypy.rpython.rarithmetic import ovfcheck
 from pypy.translator.backendopt.all import backend_optimizations
 from pypy.rpython.llinterp import LLInterpreter
 from pypy.rpython.memory.test.test_gctransform import getops
@@ -122,6 +123,23 @@
     assert len(graph.startblock.operations) == 0
     check_graph(graph, [1], g(1), t)
 
+def test_dont_constant_fold_exc():
+    def f(x):
+        return 1
+    def g(x):
+        y = f(x)        
+        try:
+            return ovfcheck(1 + y)
+        except OverflowError:
+            return 0
+    graph, t = get_graph(g, [int])
+    constant_folding(graph, t)
+    if conftest.option.view:
+        t.view()
+    assert len(graph.startblock.operations) == 1
+    check_graph(graph, [1], g(1), t)
+
+
 def test_constant_fold_call():
     def s(x):
         res = 0



More information about the Pypy-commit mailing list