https://gcc.gnu.org/g:e06a4a3bedb86b6866da851f256ecf1f072ecf2c
commit r17-441-ge06a4a3bedb86b6866da851f256ecf1f072ecf2c Author: LIU Hao <[email protected]> Date: Fri May 8 21:02:23 2026 +0800 mingw: Ensure symbols are quoted in Intel syntax Previously, this code extern int shl; int get_shl(void) { return shl; } gave errors like $ x86_64-w64-mingw32-gcc -masm=intel test.c ccUSyr0f.s: Assembler messages: ccUSyr0f.s:24: Error: invalid use of operator "shl" because it contained .refptr.shl: .quad shl This `shl` should have referenced the symbol, but it appeared in an expression context, where, in Intel syntax, it got interpreted as the shift-left operator. This commit fixes the issue by emitting the target symbol with `ASM_OUTPUT_LABELREF`, which will quote it properly with regard to the output assembler syntax. PR target/53929 gcc/ChangeLog: * config/mingw/winnt.cc (mingw_pe_file_end): Use `ASM_OUTPUT_LABELREF` to emit `name`. Signed-off-by: LIU Hao <[email protected]> Signed-off-by: Jonathan Yong <[email protected]> Diff: --- gcc/config/mingw/winnt.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/config/mingw/winnt.cc b/gcc/config/mingw/winnt.cc index e926b25cf98a..c73aa15ad37e 100644 --- a/gcc/config/mingw/winnt.cc +++ b/gcc/config/mingw/winnt.cc @@ -860,7 +860,9 @@ mingw_pe_file_end (void) "\t.p2align\t3, 0\n" "\t.globl\t%s\n" "\t.linkonce\tdiscard\n", oname, oname); - fprintf (asm_out_file, "%s:\n\t.quad\t%s\n", oname, name); + fprintf (asm_out_file, "%s:\n\t.quad\t", oname); + ASM_OUTPUT_LABELREF (asm_out_file, name); + fputc ('\n', asm_out_file); } } }
