On Sun, Aug 18, 2002 at 02:35:09PM +0000, Jarkko Hietaniemi wrote:
> 
> Tru64 finds the following objectionable spots from a fresh CVS checkout:

Does this patch fix it? (Though even if it does, I wouldn't be at all
surprised if some other compiler choked on it.)

Index: rx.ops
===================================================================
RCS file: /cvs/public/parrot/rx.ops,v
retrieving revision 1.24
diff -p -u -r1.24 rx.ops
--- rx.ops      17 Aug 2002 01:11:08 -0000      1.24
+++ rx.ops      18 Aug 2002 17:19:19 -0000
@@ -189,7 +189,7 @@ is the string to match against.
 
 op rx_allocinfo(out pmc, in str) {
        $1=pmc_new(interpreter, enum_class_Pointer);
-        $1->cache.struct_val = rx_mark;
+        $1->cache.struct_val = F2DPTR(rx_mark);
         rx_allocate_info(interpreter, $2, &$1->data);
 
        goto NEXT();
@@ -197,7 +197,7 @@ op rx_allocinfo(out pmc, in str) {
 
 op rx_allocinfo(out pmc, in pmc) {
        $1=pmc_new(interpreter, enum_class_Pointer);
-        $1->cache.struct_val = rx_mark;
+        $1->cache.struct_val = F2DPTR(rx_mark);
         rx_allocate_info(interpreter, $2->vtable->get_string(interpreter, $2), 
&$1->data);
        
        goto NEXT();
Index: classes/pointer.pmc
===================================================================
RCS file: /cvs/public/parrot/classes/pointer.pmc,v
retrieving revision 1.4
diff -p -u -r1.4 pointer.pmc
--- classes/pointer.pmc 17 Aug 2002 01:08:30 -0000      1.4
+++ classes/pointer.pmc 18 Aug 2002 17:19:20 -0000
@@ -24,7 +24,7 @@ pmclass Pointer {
     }
 
     PMC* mark (PMC *end_of_used_list) {
-        PMC* (*mark_function)(struct Parrot_Interp*, void*, PMC *) = 
SELF->cache.struct_val;
+        PMC* (*mark_function)(struct Parrot_Interp*, void*, PMC *) = (PMC*(*)(struct 
+Parrot_Interp*, void*, PMC*)) D2FPTR(SELF->cache.struct_val);
         if (SELF->data == NULL) return end_of_used_list;
         if (SELF->cache.struct_val == NULL) return end_of_used_list;
         return (*mark_function)(INTERP, SELF->data, end_of_used_list);

Reply via email to