Compiler Pragmas

A pragma, as shown in the below listing, defines how information is passed 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#pragma ONCE: Include Once and #pragma NO_STRING_CONSTR: No String Concatenation during preprocessing, which are valid for one file.

Listing: Pragma syntax
#pragma pragma_name [optional_arguments]

The value for optional_arguments 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 This is an invalid directive because two pragma names were combined into one pragma directive.

The following section describes all of the pragmas that affect the Frontend. All other pragmas affect only the code generation process and are described in the Backend section.