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

            Bug ID: 96620
           Summary: bogus -Wdeprecated-declarations on attribute
                    deprecated immediately preceding parameter name
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

The C++ front end (but not the C front end) issues a warning for the
declaration of the function argument in f1().  The C front end also doesn't
warn for this use case, and neither do Clang or ICC, suggesting the G++ rules
should be adjusted to match.

$ cat t.c && gcc -O2 -S -Wall -Wextra  -xc++ t.c
#define DEPRECATED __attribute__ ((deprecated))

void f0 (           int            *            p DEPRECATED);
void f1 (           int            * DEPRECATED p           );
void f2 (           int DEPRECATED *            p           );
void f3 (DEPRECATED int            *            p           );
t.c:4:61: warning: type is deprecated [-Wdeprecated-declarations]
    4 | void f1 (           int            * DEPRECATED p           );
      |                                                             ^

Reply via email to