Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r79865:644a9163d222 Date: 2015-09-27 17:29 +0200 http://bitbucket.org/pypy/pypy/changeset/644a9163d222/
Log: Test fix diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py --- a/rpython/jit/metainterp/optimizeopt/optimizer.py +++ b/rpython/jit/metainterp/optimizeopt/optimizer.py @@ -3,7 +3,7 @@ from rpython.jit.metainterp.logger import LogOperations from rpython.jit.metainterp.history import Const, ConstInt, REF, ConstPtr from rpython.jit.metainterp.optimizeopt.intutils import IntBound,\ - ConstIntBound, MININT, MAXINT + ConstIntBound, MININT, MAXINT, IntUnbounded from rpython.jit.metainterp.optimizeopt.util import make_dispatcher_method from rpython.jit.metainterp.resoperation import rop, AbstractResOp, GuardResOp,\ OpHelpers, ResOperation @@ -57,9 +57,11 @@ if isinstance(op, ConstInt): return ConstIntBound(op.getint()) fw = op.get_forwarded() - if isinstance(fw, IntBound): - return fw - assert fw is None + if fw is not None: + if isinstance(fw, IntBound): + return fw + # rare case: fw might be a RawBufferPtrInfo + return IntUnbounded() assert op.type == 'i' intbound = IntBound(MININT, MAXINT) op.set_forwarded(intbound) @@ -72,7 +74,8 @@ return cur = op.get_forwarded() if cur is not None: - cur.intersect(bound) + if isinstance(cur, IntBound): + cur.intersect(bound) else: op.set_forwarded(bound) @@ -404,7 +407,8 @@ box = self.get_box_replacement(box) if not we_are_translated(): # safety-check if (box.get_forwarded() is not None and - isinstance(constbox, ConstInt)): + isinstance(constbox, ConstInt) and + not isinstance(box.get_forwarded(), info.AbstractRawPtrInfo)): assert box.get_forwarded().contains(constbox.getint()) if box.is_constant(): return diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py --- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py @@ -8902,12 +8902,12 @@ """ self.optimize_loop(ops, expected) - def test_raw_buffer_ptr_info_intbounds(self): - ops = """ - [i1] + def test_raw_buffer_ptr_info_intbounds_bug(self): + ops = """ + [] i2 = call_i('malloc', 10, descr=raw_malloc_descr) guard_value(i2, 12345) [] - jump(i2) + jump() """ self.optimize_loop(ops, ops) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit