Author: Armin Rigo <[email protected]>
Branch:
Changeset: r60021:cb0037c8f67c
Date: 2013-01-13 11:20 +0100
http://bitbucket.org/pypy/pypy/changeset/cb0037c8f67c/
Log: Fix
diff --git a/pypy/jit/backend/test/test_random.py
b/pypy/jit/backend/test/test_random.py
--- a/pypy/jit/backend/test/test_random.py
+++ b/pypy/jit/backend/test/test_random.py
@@ -26,6 +26,8 @@
class OperationBuilder(object):
def __init__(self, cpu, loop, vars):
self.cpu = cpu
+ if not hasattr(cpu, '_faildescr_keepalive'):
+ cpu._faildescr_keepalive = []
self.fakemetainterp = FakeMetaInterp()
self.loop = loop
self.intvars = [box for box in vars if isinstance(box, BoxInt)]
@@ -206,6 +208,11 @@
if pytest.config.option.output:
s.close()
+ def getfaildescr(self):
+ descr = BasicFailDescr()
+ self.cpu._faildescr_keepalive.append(descr)
+ return descr
+
class CannotProduceOperation(Exception):
pass
@@ -287,7 +294,7 @@
builder.intvars[:] = original_intvars
else:
op = ResOperation(rop.GUARD_NO_OVERFLOW, [], None)
- op.setdescr(BasicFailDescr())
+ op.setdescr(builder.getfaildescr())
op.setfailargs(fail_subset)
builder.loop.operations.append(op)
@@ -357,7 +364,7 @@
def produce_into(self, builder, r):
op, passing = self.gen_guard(builder, r)
builder.loop.operations.append(op)
- op.setdescr(BasicFailDescr())
+ op.setdescr(builder.getfaildescr())
op.setfailargs(builder.subset_of_intvars(r))
if not passing:
builder.should_fail_by = op
@@ -620,7 +627,7 @@
r.shuffle(endvars)
endvars = endvars[:1]
loop.operations.append(ResOperation(rop.FINISH, endvars, None,
- descr=BasicFailDescr()))
+ descr=builder.getfaildescr()))
if builder.should_fail_by:
self.should_fail_by = builder.should_fail_by
self.guard_op = builder.guard_op
@@ -713,7 +720,7 @@
else:
op = ResOperation(rop.GUARD_EXCEPTION, [guard_op._exc_box],
BoxPtr())
- op.setdescr(BasicFailDescr())
+ op.setdescr(self.builder.getfaildescr())
op.setfailargs([])
return op
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit