https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112562
Bug ID: 112562 Summary: [14 regression] asan_interceptors_memintrinsics.cpp doesn't assemble with Solaris/x86 as Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Host: i386-pc-solaris2.11 Target: i386-pc-solaris2.11 Build: i386-pc-solaris2.11 The recent libsanitizer import broke bootstrap with the Solaris/x86 as: Assembler: asan_interceptors_memintrinsics.cpp "/var/tmp//ccY0YNed.s", line 9 : Illegal register: "%function" "/var/tmp//ccY0YNed.s", line 9 : Syntax error Near line: ".type __interceptor_trampoline_memset, %function" "/var/tmp//ccY0YNed.s", line 20 : Illegal register: "%function" "/var/tmp//ccY0YNed.s", line 20 : Syntax error Near line: ".type __interceptor_trampoline_memmove, %function" "/var/tmp//ccY0YNed.s", line 31 : Illegal register: "%function" "/var/tmp//ccY0YNed.s", line 31 : Syntax error Near line: ".type __interceptor_trampoline_memcpy, %function" Unlike gas, as doesn't understand %function. gcc (and clang) always emit @function instead. This is from libsanitizer/interception/interception.h (DECLARE_WRAPPER) and libsanitizer/sanitizer_common/sanitizer_asm.h (ASM_TYPE_FUNCTION) which apparently should be kept in sync. When I look at gcc/config, the only targets that don't use the elfos.h default of '@' for TYPE_OPERAND_FMT are aarch64-elf, arm-elf, and sparc-svr4. I wonder how best to handle this: given that clang doesn't care about the native assemblers, it might be necessary to keep a patch gcc-local.