[Bug c/100939] New: Missing warning with misplaced attribute declaration in struct, enum, or union definition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100939 Bug ID: 100939 Summary: Missing warning with misplaced attribute declaration in struct, enum, or union definition Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: johnfbennett at protonmail dot com Target Milestone: --- $ cat misplacedattribute.c struct samplestruct { int member1; int member2; }; int main(void) { struct __attribute__((__unused__)) samplestruct samplestruct; return 0; } $ gcc -Wall misplacedattribute.c misplacedattribute.c: In function ‘main’: misplacedattribute.c:7:50: warning: unused variable ‘samplestruct’ [-Wunused-variable] 7 | struct __attribute__((__unused__)) samplestruct samplestruct; | ^~~~ $
[Bug c/100939] Missing warning with misplaced attribute declaration in struct, enum, or union definition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100939 --- Comment #1 from johnfbennett at protonmail dot com --- G++ does have a good warning for this scenario: $ g++ -Wall misplacedattribute.c misplacedattribute.c: In function ‘int main()’: misplacedattribute.c:7:37: warning: attributes ignored on elaborated-type-specifier that is not a forward declaration [-Wattributes] 7 | struct __attribute__((__unused__)) samplestruct samplestruct; | ^~~~ misplacedattribute.c:7:50: warning: unused variable ‘samplestruct’ [-Wunused-variable] 7 | struct __attribute__((__unused__)) samplestruct samplestruct; | ^~~~