https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93824

            Bug ID: 93824
           Summary: -Wredundant-tags false positives
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sbergman at redhat dot com
                CC: msebor at gcc dot gnu.org
  Target Milestone: ---

With recent GCC trunk and

> $ cat incA.h
> struct S {};

> $ cat incB.h
> void f(struct S *);

> $ cat test1.cc
> #include "incA.h"
> #include "incB.h"

> $ cat test2.cc
> #include "incB.h"

> $ g++ -Wredundant-tags -fsyntax-only test1.cc
> In file included from test1.cc:2:
> incB.h:1:8: warning: redundant class-key ‘struct’ in reference to ‘struct S’ 
> [-Wredundant-tags]
>     1 | void f(struct S *);
>       |        ^~~~~~
>       |        ------

> $ g++ -Wredundant-tags -fsyntax-only test2.cc
> In file included from test2.cc:1:
> incB.h:1:8: warning: redundant class-key ‘struct’ in reference to ‘struct S’ 
> [-Wredundant-tags]
>     1 | void f(struct S *);
>       |        ^~~~~~
>       |        ------

there should IMO not be warnings when compiling neither test1.ccc nor test2.cc.
 test2.cc clearly is a false positive, and arguably test1.cc is as well, albeit
a little more subtly.

Reply via email to