[pypy-commit] pypy dynamic-specialized-tuple: Start trying to get this test to pass under x86, now it segfaults.
alex_gaynor
noreply at buildbot.pypy.org
Fri Mar 30 04:46:06 CEST 2012
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: dynamic-specialized-tuple
Changeset: r54089:1bbdd65e9f7e
Date: 2012-03-29 22:45 -0400
http://bitbucket.org/pypy/pypy/changeset/1bbdd65e9f7e/
Log: Start trying to get this test to pass under x86, now it segfaults.
diff --git a/pypy/jit/backend/llsupport/llmodel.py b/pypy/jit/backend/llsupport/llmodel.py
--- a/pypy/jit/backend/llsupport/llmodel.py
+++ b/pypy/jit/backend/llsupport/llmodel.py
@@ -8,7 +8,7 @@
from pypy.jit.backend.model import AbstractCPU
from pypy.jit.backend.llsupport import symbolic
from pypy.jit.backend.llsupport.symbolic import WORD, unroll_basic_sizes
-from pypy.jit.backend.llsupport.descr import (
+from pypy.jit.backend.llsupport.descr import (FLAG_POINTER,
get_size_descr, get_field_descr, get_array_descr,
get_call_descr, get_interiorfield_descr, get_dynamic_interiorfield_descr,
FieldDescr, ArrayDescr, CallDescr, InteriorFieldDescr)
@@ -291,6 +291,9 @@
return ffisupport.get_call_descr_dynamic(self, ffi_args, ffi_result,
extrainfo, ffi_flags)
+ def copy_and_change_descr_typeinfo_to_ptr(self, descr):
+ return ArrayDescr(descr.basesize, descr.itemsize, descr.lendescr, FLAG_POINTER)
+
def get_overflow_error(self):
ovf_vtable = self.cast_adr_to_int(self._ovf_error_vtable)
ovf_inst = lltype.cast_opaque_ptr(llmemory.GCREF,
diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py
--- a/pypy/jit/metainterp/test/test_ajit.py
+++ b/pypy/jit/metainterp/test/test_ajit.py
@@ -3806,6 +3806,17 @@
res = self.interp_operations(f, [x])
assert res == x or math.isnan(x) and math.isnan(res)
+ def test_untyped_storage(self):
+ class A(object):
+ def __init__(self, v):
+ self.v = v
+ def f(x):
+ storage = rerased_raw.UntypedStorage("io")
+ storage.setint(0, x)
+ storage.setinstance(1, A(x * 10))
+ return storage.getint(0) + storage.getinstance(1, A).v
+ res = self.interp_operations(f, [5])
+ assert res == 55
class TestLLtype(BaseLLtypeTests, LLJitMixin):
def test_tagged(self):
@@ -3933,14 +3944,3 @@
self.interp_operations(f, [1, 2, 3])
self.check_operations_history(call=1, guard_no_exception=0)
- def test_untyped_storage(self):
- class A(object):
- def __init__(self, v):
- self.v = v
- def f(x):
- storage = rerased_raw.UntypedStorage("io")
- storage.setint(0, x)
- storage.setinstance(1, A(x * 10))
- return storage.getint(0) + storage.getinstance(1, A).v
- res = self.interp_operations(f, [5])
- assert res == 55
\ No newline at end of file
More information about the pypy-commit
mailing list