The m32c port has this: #define DWARF2_ADDR_SIZE 4
However, dwarf2asm.c has this: int size_of_encoded_value (int encoding) { . . . case DW_EH_PE_absptr: return POINTER_SIZE / BITS_PER_UNIT; The net result is that the EH sections have 2 byte pointers for the m16c variant (HImode pointers), which screws up binutils, which is expecting 4. The m32c variant (PSImode pointers) is OK. Before I go hard-coding a "2" into binutils, I ask... is gcc supposed to honor DWARF2_ADDR_SIZE for absptr? What's the reasoning behind the way it is?