Compiler Pragmas

A pragma, as shown in the following listing, defines information that passes from the Compiler Frontend to the Compiler Backend, without affecting the parser. In the Compiler, the effect of a pragma on code generation starts at the point of its definition and ends with the end of the next function. Exceptions to this rule are the pragmas ONCE and NO_STRING_CONSTR (see #pragma ONCE: Include Once and #pragma NO_STRING_CONSTR: No String Concatenation during Preprocessing), which are valid for only one file.

Listing: Syntax of a Pragma
#pragma pragma_name [optional_arguments]

The optional_arguments value depends on the pragma that you use. Some pragmas do not take arguments.

Note: A pragma directive accepts a single pragma with optional arguments. Do not place more than one pragma name in a pragma directive. The following example uses incorrect syntax: #pragma ONCE NO_STRING_CONSTR

The following section describes all pragmas that affect the frontend. All other pragmas affect only the code generation process and are described in the back-end section. The topics included are as follows: