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$