#pragma target (C only)

Category

Object code control

Purpose

Specifies the operating system or runtime environment for which the compiler creates the object module.

Syntax

Read syntax diagramSkip visual syntax diagram
                         .-LE--.      
>>-#--pragma--target--(--+-IMS-+--)----------------------------><

Defaults

The default is LE.

Parameters

LE
Generates code to run under the z/OS® Language Environment® run-time library. This is equivalent to specifying #pragma target(). This suboption has the following effects on #pragma runopts(ENV) and #pragma runopts(PLIST):
  • If you did not specify values for #pragma runopts(ENV) or #pragma runopts(PLIST), the compiler sets the pragmas to #pragma runopts(ENV(MVS™)) and #pragma runopts(PLIST(HOST)).
  • If you did specify values for #pragma runopts(ENV) or #pragma runopts(PLIST), the values do not change.
IMS™
Generates object code to run under IMS. This suboption has the following effects on #pragma runopts(ENV) and #pragma runopts(PLIST) :
  • If you did not specify values for #pragma runopts(ENV) or #pragma runopts(PLIST), the compiler sets the pragmas to #pragma runopts(ENV(IMS)) and #pragma runopts(PLIST(OS)).
  • If you did specify values for #pragma runopts(ENV) or #pragma runopts(PLIST), the values do not change.

Usage

Note that you cannot specify the release suboptions using the #pragma target directive as you can with the TARGET compiler option.

The only pragma directives that can precede #pragma target are filetag, chars, langlvl, and longname.

IPA effects

This pragma only affects the IPA compile step if you specify the OBJECT suboption of the IPA compiler option.

The IPA compile step passes the effects of this pragma to the IPA link step.

If you specify different #pragma target directives for different translation units, the IPA link step uses the ENV and PLIST information from the translation unit containing main. If there is no main, it uses information from the first translation unit it finds. If you specify the TARGET compile option for the IPA link step, it overrules the #pragma target directive.

Related information