ICC defines __STDC_VERSION__ to 201112L, but doesn't define __STDC_NO_THREADS__. glibc doesn't currently support the C11 threads API, so it should be defined (per § 6.10.8.3 of the C11 spec).
I know this is partially a libc problem. I believe GCC resolves this by including <stdc-predef.h> from glibc (which includes a definition of __STDC_NO_THREADS__ in glibc >= __STDC_NO_THREADS__).
I'm working around this right now by checking __STDC_NO_THREADS__ after including <limits.h> (<limits.h> includes <features.h> which includes <stdc-predef.h>).
Testing is simple, just put this before any includes:
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201102L) && !defined(__STDC_NO_THREADS__) # include <threads.h> #endif
Thread Topic:
Bug Report