https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86221
Bug ID: 86221 Summary: _Generic not match function return that has _Atomic Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: tydeman at tybor dot com Target Milestone: --- static int * f1(void){return NULL;} int main(void){ int i = _Generic(f1, int * _Atomic (*)(void): 1, default: 0); return i; } The above _Generic() should match, but does not. If _Atomic is replaced with any of: const, volatile, restrict, then it works as expected.