6.10.6 Pragma directive

Previous Table of Contents "New C Standard" commentary

1994 A preprocessing directive of the form

  # pragma pp-tokensopt new-line

where the preprocessing token STDC does not immediately follow pragma in the directive (prior to any macro replacement)149) causes the implementation to behave in an implementation-defined manner.

1995 The behavior might cause translation to fail or cause the translator or the resulting program to behave in a non-conforming manner.

1996 Any such pragma that is not recognized by the implementation is ignored.

1997 If the preprocessing token STDC does immediately follow pragma in the directive (prior to any macro replacement), then no macro replacement is performed on the directive, and the directive shall have one of the following forms150) whose meanings are described elsewhere:

  #pragma STDC FP_CONTRACT on-off-switch
  #pragma STDC FENV_ACCESS on-off-switch
  #pragma STDC CX_LIMITED_RANGE on-off-switch

on-off-switch: one of ON OFF DEFAULT

1998 Forward references: the FP_CONTRACT pragma (7.12.2), the FENV_ACCESS pragma (7.6.1), the CX_LIMITED_RANGE pragma (7.3.4).

1999 149) An implementation is not required to perform macro replacement in pragmas, but it is permitted except for in standard pragmas (where STDC immediately follows pragma).

2000 If the result of macro replacement in a non-standard pragma has the same form as a standard pragma, the behavior is still implementation-defined;

2001 an implementation is permitted to behave as if it were the standard pragma, but is not required to.

2002 150) See “future language directions” (6.11.8).


Created at: 2008-01-30 02:39:45 The text from WG14/N1256 is copyright © ISO