[pypy-svn] r74337 - in pypy/trunk/pypy/jit/metainterp: . test
arigo at codespeak.net
arigo at codespeak.net
Mon May 3 14:46:43 CEST 2010
Author: arigo
Date: Mon May 3 14:46:42 2010
New Revision: 74337
Modified:
pypy/trunk/pypy/jit/metainterp/pyjitpl.py
pypy/trunk/pypy/jit/metainterp/test/test_exception.py
Log:
Test and fix.
Modified: pypy/trunk/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/trunk/pypy/jit/metainterp/pyjitpl.py Mon May 3 14:46:42 2010
@@ -1396,13 +1396,13 @@
etype, evalue = self.cpu.get_overflow_error()
return self.finishframe_exception(
self.cpu.ts.get_exception_box(etype),
- self.cpu.ts.get_exc_value_box(evalue))
+ self.cpu.ts.get_exc_value_box(evalue).constbox())
def raise_zero_division_error(self):
etype, evalue = self.cpu.get_zero_division_error()
return self.finishframe_exception(
self.cpu.ts.get_exception_box(etype),
- self.cpu.ts.get_exc_value_box(evalue))
+ self.cpu.ts.get_exc_value_box(evalue).constbox())
def create_empty_history(self):
warmrunnerstate = self.staticdata.state
Modified: pypy/trunk/pypy/jit/metainterp/test/test_exception.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/test_exception.py (original)
+++ pypy/trunk/pypy/jit/metainterp/test/test_exception.py Mon May 3 14:46:42 2010
@@ -556,6 +556,20 @@
optimizer=OPTIMIZER_SIMPLE)
assert res == 8
+
+ def test_overflowerror_escapes(self):
+ def g(x):
+ return ovfcheck(x + 1)
+ def f(x):
+ try:
+ return g(x)
+ except Exception, e:
+ if isinstance(e, OverflowError):
+ return -42
+ raise
+ res = self.interp_operations(f, [sys.maxint])
+ assert res == -42
+
class MyError(Exception):
def __init__(self, n):
self.n = n
More information about the Pypy-commit
mailing list