https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99588
Bug ID: 99588
Summary: variable set but not used warning on static _Atomic
assignment
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: godmar at gmail dot com
Target Milestone: ---
A student shared this program with me:
#include <stdio.h>
#include <stdatomic.h>
void test() {
static _Atomic int x = 0;
printf("%d\n", x += 1);
}
int main(int argc, char **argv) {
for(int i = 0; i < 10; i++) {
test();
}
}
which on the current x86_64 trunk (and earlier versions) as per godbolt yields
a warning:
<source>: In function 'test':
<source>:5:24: warning: variable 'x' set but not used
[-Wunused-but-set-variable]
5 | static _Atomic int x = 0;
| ^
Compiler returned: 0
If the _Atomic modifier is removed, the warning disappears. Is this kosher?