With all the warnings turned on, there are many many warnings of the form:
ccore_ops.c: In function `Parrot_end':core_ops.c:25: warning: unused parameter `cur_opcode' core_ops.c:25: warning: unused parameter `interpreter' core_ops.c: In function `Parrot_noop': core_ops.c:30: warning: unused parameter `interpreter' What's the approved portable way to signal that a parameter is unused, without generating further warnings? We've also got cast warning turned on, which will give possible line noise about things like: encodings/singlebyte.c:43: warning: cast discards qualifiers from pointer target type Also, do we want to leave the alignment cast warning on, or appease it by defining some core types as pointer to something other than void: runops_cores.c: In function `runops_slow_core': runops_cores.c:48: warning: cast increases required alignment of target type runops_cores.c:50: warning: cast increases required alignment of target type because round here (ARM) 48: code_start = (opcode_t *)interpreter->code->byte_code; 50: code_end = (opcode_t *)(interpreter->code->byte_code + code_size); integers have to be word (4 byte) aligned. I don't know if this is also true on other RISC architectures. [I'm aware that Alpha Linux kernels have fixup code for unaligned word accesses, but I'm not sure what other platforms do. I believe HP UX will SIGBUS, so I'd expect gcc on PA RISC to issue this warning everywhere that gcc on ARM does] Nicholas Clark