https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78188
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, I can reproduce it with the cross now. -O2 -fno-exceptions. I'll try to reduce. (gdb) p debug_tree (decl) <function_decl 0x2aaaaff46d00 _ZL11vn_valueizeP9tree_node.part.80 type <function_type 0x2aaaacc873f0 so it's actually a partially inlined clone, not vn_valueize itself. Likewise for gimple_ops: (gdb) p debug_tree (sect->named.decl) <function_decl 0x2aaaafdebc00 _ZL10gimple_opsP6gimple.part.20 (gdb) p/x sect->common.flags $5 = 0x300102 (gdb) p/x flags $6 = 0x200902 SECTION_DECLARED is missing (doesn't matter) but SECTION_LINKONCE is set which is what causes the error. The named section is 'text.unlikely'. We get that flags from 422 flags = targetm.section_type_flags (decl, name, reloc); 423 return get_section (name, flags, decl); which in turn gets it from default_section_type_flags which adds SECTION_LINKONCE because if (decl && DECL_P (decl) && DECL_COMDAT_GROUP (decl)) flags |= SECTION_LINKONCE; but there is no DECL_COMDAT_GROUP for the gimple_ops function decl. Note we assign the section name in default_function_section. So this seems to be a general issue somehow. Honza? How is this situation avoided on other targets?