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

Reply via email to