[Bug c/100939] New: Missing warning with misplaced attribute declaration in struct, enum, or union definition

2021-06-06 Thread johnfbennett at protonmail dot com via Gcc-bugs
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

2021-06-09 Thread johnfbennett at protonmail dot com via Gcc-bugs
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;
  |  ^~~~