on 64-bit architectures, the switch can be int or vlong. Case.val and C1.val are then vlong. the generated code always uses signed comparisons, so if the value is 32 bits it must be sign-extended into a vlong if the switch is on a 32-bit value. also, if the switch is on 32 bits, but a case value needs 64 bits, given a warning. (perhaps it should force the case expression to 64 bits instead-- will check ansi, but this will at least warn about it meanwhile, and help 6c to compile pool.c correctly.) the unrelated change to com.c eliminates a redundant test.