Further Subsetting the C Standard

Document: N1471

Date: 2010-05-09

Author: S. J. Montgomery

Related documents: WG 14/N1443 and N1460


N1443 proposes that three large components of C1X be made optional in the sense that a conforming implementation may omit any or all of them. The rationale for doing so is to increase mainstream adoption of C1X. During discussion of N1443 in Florence 2010-04-20 the MISRA C WG was asked whether other components might similarly be made optional.


This paper proposes that three other components be made optional. The rationale for omitting these components is not to increase adoption of C1X but to remove features that are (or should be) rarely used in the opinion of the MISRA C WG on the grounds of potential for undefined behaviour.


ADD:

__STDC_NO_TGMATH_

The integer constant 1, intended to indicate that the implementation shall accept only a strictly conforming program that does not include the header <tgmath.h>.

__STDC_NO_FN_ID_

The integer constant 1, intended to indicate that the implementation shall accept only a strictly conforming program in which no function declarator includes an identifier list even if empty.

__STDC_NO_FAM_

The integer constant 1, intended to indicate that the implementation shall accept only a strictly conforming program that does not use flexible array members.