Skip to content

6.10.6 — Pragma directive #76

@ajaxvp

Description

@ajaxvp

6.10.6 — Pragma directive

Semantics

  • (1) 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)146) causes the implementation to behave in an implementation-defined manner. The behavior might cause translation to fail or cause the translator or the resulting program to behave in a non-conforming manner. Any such pragma that is not recognized by the implementation is ignored.
  • (2) 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 forms147) 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

146) 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). 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; an implementation is permitted to behave as if it were the standard pragma, but is not required to.

147) See ‘‘future language directions’’ (6.11.8).

Metadata

Metadata

Assignees

Labels

stdC99 standardization

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions