Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r70305:09f9774d8d28
Date: 2014-03-27 15:26 +0100
http://bitbucket.org/pypy/pypy/changeset/09f9774d8d28/
Log: cast_ptr_to_int on non-gc objects is by itself not dangerous
diff --git a/rpython/translator/c/funcgen.py b/rpython/translator/c/funcgen.py
--- a/rpython/translator/c/funcgen.py
+++ b/rpython/translator/c/funcgen.py
@@ -666,6 +666,7 @@
OP_CAST_ADR_TO_PTR = OP_CAST_POINTER
OP_CAST_OPAQUE_PTR = OP_CAST_POINTER
OP_CAST_PTR_TO_ADR = OP_CAST_POINTER
+ OP_CAST_PTR_TO_INT = OP_CAST_POINTER
def OP_CAST_INT_TO_PTR(self, op):
TYPE = self.lltypemap(op.result)
diff --git a/rpython/translator/c/src/int.h b/rpython/translator/c/src/int.h
--- a/rpython/translator/c/src/int.h
+++ b/rpython/translator/c/src/int.h
@@ -224,7 +224,6 @@
#define OP_CAST_INT_TO_LONGLONGLONG(x,r) r = (__int128)(x)
#define OP_CAST_CHAR_TO_INT(x,r) r = (Signed)((unsigned char)(x))
#define OP_CAST_INT_TO_CHAR(x,r) r = (char)(x)
-#define OP_CAST_PTR_TO_INT(x,r) r = (Signed)(x)
#define OP_CAST_CURRENT_PTR_TO_INT(x,r) r = (Signed)(x)
#define OP_TRUNCATE_LONGLONG_TO_INT(x,r) r = (Signed)(x)
diff --git a/rpython/translator/stm/inevitable.py
b/rpython/translator/stm/inevitable.py
--- a/rpython/translator/stm/inevitable.py
+++ b/rpython/translator/stm/inevitable.py
@@ -12,6 +12,7 @@
'cast_opaque_ptr', 'hint',
'stack_current', 'gc_stack_bottom',
'cast_current_ptr_to_int', # this variant of 'cast_ptr_to_int' is ok
+ 'cast_ptr_to_int', # only for non-gc, crashes in genc for gc
'jit_force_virtual', 'jit_force_virtualizable',
'jit_force_quasi_immutable', 'jit_marker', 'jit_is_virtual',
'jit_record_known_class',
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit