Here are a few of the more clear-cut fixes I noticed from -Wall's whinings.
Index: key.c =================================================================== RCS file: /home/perlcvs/parrot/key.c,v retrieving revision 1.2 diff -u -r1.2 key.c - --- key.c 12 Dec 2001 02:52:52 -0000 1.2 +++ key.c 13 Dec 2001 04:30:15 -0000 @@ -59,6 +59,7 @@ } else { fprintf(stderr,"*** key_size asked to check a NULL key\n"); + return 0; } } Index: string.c =================================================================== RCS file: /home/perlcvs/parrot/string.c,v retrieving revision 1.23 diff -u -r1.23 string.c --- string.c 6 Dec 2001 00:11:24 -0000 1.23 +++ string.c 13 Dec 2001 04:30:15 -0000 @@ -113,7 +113,6 @@ "Cannot get character past end of string"); } else { - char *buf = s->bufstart; if(index < 0) { return string_index(s,len+index); } Index: test_main.c =================================================================== RCS file: /home/perlcvs/parrot/test_main.c,v retrieving revision 1.20 diff -u -r1.20 test_main.c --- test_main.c 6 Dec 2001 17:48:58 -0000 1.20 +++ test_main.c 13 Dec 2001 04:30:16 -0000 @@ -163,7 +163,7 @@ op_count++; call_count += interpreter->profile[i]; - printf(" %5d %-12s %12d\n", i, core_opinfo[i].full_name , + printf(" %5d %-12s %12ld\n",i, core_opinfo[i].full_name , interpreter->profile[i]); } Index: trace.c =================================================================== RCS file: /home/perlcvs/parrot/trace.c,v retrieving revision 1.2 diff -u -r1.2 trace.c --- trace.c 16 Nov 2001 20:49:46 -0000 1.2 +++ trace.c 13 Dec 2001 04:30:16 -0000 @@ -41,7 +41,7 @@ fprintf(stderr, "%ld", (long) *(pc + i)); break; case PARROT_ARG_SC: - fprintf(stderr, "\"%s\"", interpreter->code->const_table->cons tants[*(pc + i)]->string->bufstart); + fprintf(stderr, "\"%s\"", (char*)interpreter->code->const_tabl e->constants[*(pc + i)]->string->bufstart); break; case PARROT_ARG_I: fprintf(stderr, "I%ld=%ld", (long) *(pc + i), (long) interpret er->int_reg->registers[*(pc + i)]); @@ -55,7 +55,7 @@ break; case PARROT_ARG_S: if(interpreter->string_reg->registers[*(pc + i)]) { - fprintf(stderr, "S%ld=\"%s\"", (long) *(pc + i), interpret er->string_reg->registers[*(pc + i)]->bufstart); + fprintf(stderr, "S%ld=\"%s\"", (long) *(pc + i), (char*)in terpreter->string_reg->registers[*(pc + i)]->bufstart); } else { fprintf(stderr, "S%ld=(null)", (long) *(pc + i)); } @@ -78,7 +78,6 @@ */ void trace_op(struct Parrot_Interp *interpreter, opcode_t * code_start, opcode_t * code_end, opcode_t *pc) { - INTVAL i; if (!pc) { return; Index: include/parrot/trace.h =================================================================== RCS file: /home/perlcvs/parrot/include/parrot/trace.h,v retrieving revision 1.1 diff -u -r1.1 trace.h --- include/parrot/trace.h 18 Oct 2001 01:15:11 -0000 1.1 +++ include/parrot/trace.h 13 Dec 2001 04:30:16 -0000 @@ -24,6 +24,9 @@ void trace_op_b1(struct Parrot_Interp *interpreter, opcode_t * code_start, opcode_t * code_end, opcode_t *pc); +void +trace_op(struct Parrot_Interp *interpreter, opcode_t * code_start, opcode_t * code_end, opcode_t *pc); + #endif /*