https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119367
--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> --- Quoted too few lines: 13001 dw2_asm_output_delta (2, line_label, prev_label, 13002 "from %s to %s", prev_label, line_label); which calls dw2_asm_output_delta (int size, const char *lab1, const char *lab2, const char *comment, ...) #ifdef ASM_OUTPUT_DWARF_DELTA ASM_OUTPUT_DWARF_DELTA (asm_out_file, size, lab1, lab2); #else dw2_assemble_integer (size, gen_rtx_MINUS (Pmode, gen_rtx_SYMBOL_REF (Pmode, lab1), gen_rtx_SYMBOL_REF (Pmode, lab2))); #endif where for gcn (contrary to darwin or nvptx) the second code path is taken. with dw2_asm_output_delta (size=2, lab1=0x7fffffffda80 "*.LM6", lab2=0x7fffffffdab0 "*.LM5", comment=0x251b607 "from %s to %s") leading to the call: dw2_assemble_integer (size, (minus:DI (symbol_ref:DI ("*.LM6")) (symbol_ref:DI ("*.LM5"))) 47 dw2_assemble_integer (int size, rtx x) 48 { 49 if (size == 2 * (int) DWARF2_ADDR_SIZE && !CONST_SCALAR_INT_P (x)) and defaults.h:#define DWARF2_ADDR_SIZE ((POINTER_SIZE + BITS_PER_UNIT - 1) / BITS_PER_UNIT) That's false – hence: 95 const char *op = integer_asm_op (size, false); (gdb) p op $7 = 0x25fcddd "\t.2byte\t" gets used.