Gnulib avoids some features even though they are standardized by C99, as they have portability problems in practice. Here is a partial list of avoided C99 features. Many other C99 features are portable only if their corresponding modules are used; Gnulib code that uses such a feature should require the corresponding module.
__STDC_NO_VLA__is defined. See the
extern inlinefunctions, without checking whether they are supported. See extern inline.
<iso646.h>, since GNU programs need not worry about deficient source-code encodings.