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

            Bug ID: 85009
           Summary: missing -Wdiscarded-qualifiers when dropping _Atomic
           Product: gcc
           Version: 8.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: ---

GCC issues -Wdiscarded-qualifiers when an assignment loses the const, restrict,
or volatile qualifier but it fails to issue the same warning for the _Atomic
qualifier.  Clang and Oracle CC have the same bug, but Intel ICC does give the
expected warning.

$ cat z.c && gcc -S -Wall -Wextra -Wpedantic z.c
void *p;

void
f (const int *pci, volatile int *pvi, int* restrict* pirp, _Atomic int *pai)
{
  p = pci;    // -Wdiscarded-qualifiers (good)
  p = pvi;    // -Wdiscarded-qualifiers (good)
  p = pirp;   // -Wdiscarded-qualifiers (good)

  p = pai;    // missing -Wdiscarded-qualifiers
}
z.c: In function ‘f’:
z.c:6:5: warning: assignment discards ‘const’ qualifier from pointer target
type [-Wdiscarded-qualifiers]
   p = pci;    // -Wdiscarded-qualifiers (good)
     ^
z.c:7:5: warning: assignment discards ‘volatile’ qualifier from pointer target
type [-Wdiscarded-qualifiers]
   p = pvi;    // -Wdiscarded-qualifiers (good)
     ^
z.c:8:5: warning: assignment discards ‘restrict’ qualifier from pointer target
type [-Wdiscarded-qualifiers]
   p = pirp;   // -Wdiscarded-qualifiers (good)
     ^
tmp$

Reply via email to