# New Ticket Created by  Andy Dougherty 
# Please include the string:  [perl #18862]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=18862 >


Without the following patch, Sun's cc compiler complained:

"jit.c", line 504: non-constant initializer: op "NAME"
"jit.c", line 702: non-constant initializer: op "U*"
"jit.c", line 702: non-constant initializer: op "U*"
"jit.c", line 735: non-constant initializer: op "U*"
"jit.c", line 735: non-constant initializer: op "U*"

The original style was clearer but this at least compiles for me.
Suggestions for how to do this better are welcome.

--- parrot-current/jit.c        Mon Dec  2 11:00:01 2002
+++ parrot-andy/jit.c   Wed Dec  4 09:41:11 2002
@@ -501,7 +501,9 @@
     op_info_t *op_info;
     int i, op_arg, typ;
     opcode_t * cur_op;
-    char * maps[] = {intval_map, 0, 0, floatval_map};
+    char * maps[] = {0, 0, 0, 0};
+    maps[0] = intval_map;
+    maps[3] = floatval_map;
 
     map = optimizer->map_branch;
     /* For each opcode in this section */
@@ -699,10 +701,13 @@
     Parrot_jit_optimizer_section_t *sect = jit_info->optimizer->cur_section;
     Parrot_jit_register_usage_t *ru = sect->ru;
     int i, typ;
-    char * maps[] = {jit_info->intval_map, 0, 0, jit_info->floatval_map};
     void (*mov_f[4])(struct Parrot_Interp *, int, char *)
         = { Parrot_jit_emit_mov_rm, 0, 0, Parrot_jit_emit_mov_rm_n};
     int lasts[] = { PRESERVED_INT_REGS, 0,0,  PRESERVED_FLOAT_REGS };
+    char * maps[] = {0, 0, 0, 0};
+    maps[0] = jit_info->intval_map;
+    maps[3] = jit_info->floatval_map;
+    
 
     for (typ = 0; typ < 4; typ++) {
         if (maps[typ]) {
@@ -732,10 +737,12 @@
     Parrot_jit_optimizer_section_t *sect = jit_info->optimizer->cur_section;
     Parrot_jit_register_usage_t *ru = sect->ru;
     int i, typ;
-    char * maps[] = {jit_info->intval_map, 0, 0, jit_info->floatval_map};
     void (*mov_f[4])(struct Parrot_Interp * , char *, int)
         = { Parrot_jit_emit_mov_mr, 0, 0, Parrot_jit_emit_mov_mr_n};
     int lasts[] = { PRESERVED_INT_REGS, 0,0,  PRESERVED_FLOAT_REGS };
+    char * maps[] = {0, 0, 0, 0};
+    maps[0] = jit_info->intval_map;
+    maps[3] = jit_info->floatval_map;
 
     for (typ = 0; typ < 4; typ++) {
         if (maps[typ])

-- 
    Andy Dougherty              [EMAIL PROTECTED]



Reply via email to