Change 11970 by sky@sky-titanic on 2001/09/10 11:17:25

        Apply INT2PTR with force to silence warnings from
        PM_GETRE and friends. No more warnings with 64bit 
        IVs and 32bit pointers. 

Affected files ...

... //depot/perl/op.c#441 edit
... //depot/perl/op.h#95 edit
... //depot/perl/perl.c#368 edit

Differences ...

==== //depot/perl/op.c#441 (text) ====
Index: perl/op.c
--- perl/op.c.~1~       Mon Sep 10 05:30:05 2001
+++ perl/op.c   Mon Sep 10 05:30:05 2001
@@ -813,10 +813,10 @@
        goto clear_pmop;
     case OP_PUSHRE:
 #ifdef USE_ITHREADS
-       if ((PADOFFSET)cPMOPo->op_pmreplroot) {
+        if (INT2PTR(PADOFFSET, cPMOPo->op_pmreplroot)) {
            if (PL_curpad) {
-               GV *gv = (GV*)PL_curpad[(PADOFFSET)cPMOPo->op_pmreplroot];
-               pad_swipe((PADOFFSET)cPMOPo->op_pmreplroot);
+               GV *gv = (GV*)PL_curpad[INT2PTR(PADOFFSET, cPMOPo->op_pmreplroot)];
+               pad_swipe(INT2PTR(PADOFFSET, cPMOPo->op_pmreplroot));
                /* No GvIN_PAD_off(gv) here, because other references may still
                 * exist on the pad */
                SvREFCNT_dec(gv);
@@ -3553,7 +3553,7 @@
                    else if (curop->op_type == OP_PUSHRE) {
                        if (((PMOP*)curop)->op_pmreplroot) {
 #ifdef USE_ITHREADS
-                           GV *gv = 
(GV*)PL_curpad[(PADOFFSET)((PMOP*)curop)->op_pmreplroot];
+                           GV *gv = 
+(GV*)PL_curpad[INT2PTR(PADOFFSET,((PMOP*)curop)->op_pmreplroot)];
 #else
                            GV *gv = (GV*)((PMOP*)curop)->op_pmreplroot;
 #endif
@@ -3583,7 +3583,7 @@
                    tmpop = ((UNOP*)left)->op_first;
                    if (tmpop->op_type == OP_GV && !pm->op_pmreplroot) {
 #ifdef USE_ITHREADS
-                       pm->op_pmreplroot = (OP*)cPADOPx(tmpop)->op_padix;
+                       pm->op_pmreplroot = INT2PTR(OP*, cPADOPx(tmpop)->op_padix);
                        cPADOPx(tmpop)->op_padix = 0;   /* steal it */
 #else
                        pm->op_pmreplroot = (OP*)cSVOPx(tmpop)->op_sv;

==== //depot/perl/op.h#95 (text) ====
Index: perl/op.h
--- perl/op.h.~1~       Mon Sep 10 05:30:05 2001
+++ perl/op.h   Mon Sep 10 05:30:05 2001
@@ -250,8 +250,8 @@
 };
 
 #ifdef USE_ITHREADS
-#define PM_GETRE(o)     ((REGEXP*)SvIVX(PL_regex_pad[(o)->op_pmoffset]))
-#define PM_SETRE(o,r)   (sv_setiv(PL_regex_pad[(o)->op_pmoffset], (IV)r))
+#define PM_GETRE(o)     (INT2PTR(REGEXP*,SvIVX(PL_regex_pad[(o)->op_pmoffset])))
+#define PM_SETRE(o,r)   (sv_setiv(PL_regex_pad[(o)->op_pmoffset], PTR2IV(r)))
 #define PM_GETRE_SAFE(o) (PL_regex_pad ? PM_GETRE(o) : (REGEXP*)0)
 #define PM_SETRE_SAFE(o,r) if (PL_regex_pad) PM_SETRE(o,r)
 #else

==== //depot/perl/perl.c#368 (text) ====
Index: perl/perl.c
--- perl/perl.c.~1~     Mon Sep 10 05:30:05 2001
+++ perl/perl.c Mon Sep 10 05:30:05 2001
@@ -470,7 +470,7 @@
 
         while (i) {
             SV *resv = ary[--i];
-            REGEXP *re = (REGEXP *)SvIVX(resv);
+            REGEXP *re = INT2PTR(REGEXP *,SvIVX(resv));
 
             if (SvFLAGS(resv) & SVf_BREAK) {
                 /* this is PL_reg_curpm, already freed
End of Patch.

Reply via email to