https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98146
Bug ID: 98146 Summary: [11 Regression] section type conflict when "used" attribute is applied to decl with specific section Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jozefl at gcc dot gnu.org Target Milestone: --- For targets that support the SHF_GNU_RETAIN ELF section flag, the "used" attribute will set the internal GCC SECTION_RETAIN flag on the section containing the "used" decl. If a "used" decl, and a decl without "used" both specify the same section with the "section" attribute, GCC will emit an error: $ cat tester.c int __attribute__((section(".data.foo"))) foo1 = 1; int __attribute__((used,section(".data.foo"))) foo2 = 2; $ gcc -S tester.c tester.c:2:48: error: 'foo2' causes a section type conflict with 'foo1' 2 | int __attribute__((used,section(".data.foo"))) foo2 = 2; | ^~~~ tester.c:1:43: note: 'foo1' was declared here 1 | int __attribute__((section(".data.foo"))) foo1 = 1; | ^~~~ This was originally reported in glibc PR 27002, but is actually a GCC bug.