https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #23 from LIU Hao <lh_mouse at 126 dot com> --- Changes to GCC should look like this I suspect (I didn't test this): ``` diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index fbd33a6bfd1..de80c7a805f 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -14080,7 +14080,11 @@ ix86_print_operand_address_as (FILE *file, rtx addr, if (flag_pic) output_pic_addr_const (file, disp, 0); else if (GET_CODE (disp) == LABEL_REF) - output_asm_label (disp); + { + putc ('\"', file); + output_asm_label (disp); + putc ('\"', file); + } else if (CONST_INT_P (disp)) offset = disp; else ``` It's a bit strange that `output_asm_label` writes output via a global `FILE*`.