コンパイラ・オプション

次に、各コンパイラ・オプションおよび各オプションのデフォルト設定 (適用できる場合) の一覧を示します。

-#
コンパイラおよびリンカの呼び出し方法に関する情報を示します。実際にコンパイラやリンカを呼び出すことはありません。また、このオプションは UNIX オプションがどの Micro Focus オプションに変換されるかも示します。例えば、ドライバ・コマンド・ラインで UNIX の標準 -O オプションが指定されている場合、コンパイラの呼び出しラインでは -opt に変換されます。
-agginit
Open PL/I の 7.x バージョンと互換性のある、集計 (配列および構造体) の初期化を実行します。

例:

dcl myarr(4) fixed bin(31) static init (1);
put skip list (myarr);

results in:
1               1               1               1

-agginit を使用しない場合、デフォルトでは最初の要素のみが初期化されます。

-ascii
すべての文字データに対して、ASCII 文字エンコーディングを使用することを指定します。このオプションはデフォルトで設定されています。
-bigendian
データ項目に対して NATIVE 属性が明示的に適用されていない限り、すべての FIXED BINARY、CHARACTER VARYING、および WIDECHAR VARYING 項目は、BIGENDIAN データ属性で暗黙的に宣言されていることを指定します。
-bitsltr
ビット・ストリングを各バイト内で左から右に格納します。これはビッグエンディアンのビット順序と同じです (Intelのみ)。 Intelプラットフォームではデフォルトで右から左へ格納されますが、このオプションを指定すると左から右になります。
-c
リンクを抑制し、再配置可能なオブジェクト・ファイルを生成します。このオプションは、mfplx のみに適用されます。
-cisam
VSAM データベースをサポートするために、Informix の c-isam を使用します。
-coffdebug
Visual Studio デバッガに対して行番号情報を生成し、Open PL/I ソース・コードのブレーク・ポイント、文のトレーシング、および呼び出しスタック情報を有効にします。
注:変数の評価はサポートされていません。
-compact_msgs
メッセージを改行しません。
-currency_symbol
ピクチャ指定用の代替通貨シンボルを許可します。文字、10 進数、または 0xDD 形式の 16 進定数を使用できます (例:-currency_symbol £、-currency_symbol 163、-currency_symbol 0xa3)。
-db2
DB2 プリプロセッサ mfdb2 を呼び出します。DB2 プリプロセッサのデフォルトの出力ファイル名は xxx.pp2 です (xxx はソース・ファイルの名前)。-ppdb2 オプションが指定されていない場合、コンパイル・フェーズの完了後にファイル xxx.pp2 は削除されます。-db2 オプションは、mfplx のみに適用されます。
-default_binary
FIXED 属性が指定されていて、BINARY または DECIMAL が指定されていない場合、BINARY 属性が指定されているものとみなされます。
-default_decimal 
FIXED 属性が指定されていて、BINARY または DECIMAL が指定されていない場合、DECIMAL 属性が指定されているものとみなされます。このオプションはコンパイラのデフォルトです。
-defext
データ・セクションで外部変数が定義されるようにします。外部ファイルを使用するプログラムには、このオプションを使用する必要があります。

-defext オプションを使用すると、STATIC EXTERNAL 変数と外部ファイル定数の初期値が定義されます。INITIAL 値を持つ各 STATIC EXTERNAL 変数は、-defext を使用してコンパイルされた 1 つのモジュールだけで宣言されている必要があります。こうしないと、INITIAL 値が有効になりません。デフォルトは -nodefext です。

また、各ファイル定数は、それぞれ -defext を使用してコンパイルされた 1 つのモジュールだけで宣言されている必要があります。-defext が使用されている場合、ファイルの宣言で指定されているファイル属性は、ファイルが開かれたときに指定される属性にマージされます。これは、VSAM/INDEXED I/O の実行時に非常に重要です。

-dli
mfexecpp DLI サポートのために、DLI プリプロセッサまたはリンク (またはその両方) を呼び出します。こうすることで、EXEC DLI 文が認識され、(IMS ECM で) 処理されてネイティブ PL/I ソース・コードが生成されます。このオプションは、EXEC プリプロセッサ (EXEC PP) により処理され、サポートされます。
-dll
フェッチ可能なプロシージャとして使用できるオブジェクトを生成します。フェッチ可能な共有プロシージャ・オブジェクトをビルドするには、ご使用のオペレーティング・システムに基づき、-dll を使用してください。
-E
任意の指定されたプリプロセッサ (-macro、-db2) がソース・ファイルで実行されるようにし、その出力を保存します。ただし、コンパイラは実行せずに停止します。
-ebcdic
すべての文字データに対して、EBCDIC 文字エンコーディングを使用することを指定します。
注:-ebcdic コンパイラ・オプションでは、WCHAR データ・タイプはサポートされていません。
-err_on_stdout
STDERR ではなく STDOUT にコンパイラのエラー・メッセージを表示または印刷します。
-exp
アセンブリ言語文の形式で、生成されたコードの展開リストをリスティング・ファイル内に作成します。
-f
-flag と同義です。
-fdasfb
浮動小数データが浮動バイナリとして内部的にコーディングされるようにします。このオプションにより、より高速なコードが生成されますが、算術結果の最小有効桁において精度が低くなります。デフォルトは -fdasfb です。-nofdasfb オプションも参照してください。
-flag
コンパイラ・リスティングにリストされているメッセージの最小診断レベルを指定します。-f と同義です。
-flag 最小診断レベル
最小診断レベルには、次を指定できます。
I
情報 (Informational) レベル以上の診断メッセージを生成します (すべてのメッセージをリストします。これはデフォルトの設定です)。
W
警告 (Warning) レベル以上の診断メッセージを生成します。
E
エラー (Error) レベル以上の診断メッセージを生成します。
S
重大 (Severe) レベル以上の診断メッセージを生成します。
A
異常終了 (Abort)
-fmaxp
浮動小数点の精度が三角組み込み関数および EXP、LOG、LOG10、LOG2、SQRT の算術組み込み関数に使用されるようにします。-fmaxp がデフォルトです。三角組み込み関数および名前付き算術組み込み関数の標準 PL/I 変換規則には、-nofmaxp を使用してください。
-full_list
このオプションは、通常、%INCLUDE 文によってインクルードされるコードの前に配置される %NOLIST 指令を省略するように、マクロ・プリプロセッサに指示します。これにより、インクルードされているコードがコンパイル・リストで表示されるようになります。
-help
使用できるコンパイラ・オプションのリストをコンソールまたは STDOUT 出力と、EXIT に印刷します。
-highbif
このオプションを使用すると、HIGH() 組み込み関数から返される値を変更できるようになります。例えば、-highbif 127 とすることができます (デフォルト値は 255 ですが、Open PL/I の古いバージョンとの互換性のために値 127 が使用される場合もあります)。
-ipath dirlist
%INCLUDE 文を使用してソース・プログラム・テキストにインクルードするファイルを、指定されたディレクトリで検索するように、コンパイラに指示します。dirlist は、次の形式で表されるディレクトリの順番リストです。
dirname[:dirname] ...

-ipath オプションにより、コンパイラはこれらのディレクトリを指定された順番で検索し、%INCLUDE 文を処理するためのファイルを検出するように指示されます (ただし、%INCLUDE 文に絶対ディレクトリ・パスが指定されている場合を除きます)。

例えば、ソース・プログラムに次が含まれているとします。

%INCLUDE partlist;

また、コンパイラの呼び出しコマンドは次のとおりであったとします。

mfplx source_file -ipath .:/u/libr1:/u/libr2

この場合、コンパイラはまず現在の作業ディレクトリで "PARTLIST" を検索し、次に /u/ libr1、最後に /u/ libr2 ディレクトリを検索します。それでも検出できなかった場合は、同じディレクトリで "partlist" (小文字) を検索します。

Windows 環境では、次のコンパイラ呼び出しが上記に相当します。

mfplx source_file -ipath .;drive:\libr1;drive:\libr2
-ipubr
INT または POSINT を使用して生成された符号なし整数のビットと、UNSPEC で返されたビット・ストリングを反転します。
-isuffix string
%INCLUDE 文で指定されたファイル名に string が付加されるようにします。ただし、%INCLUDE 文の引用符付きファイル名形式が使用されている場合は除きます。

例えば、ソース・プログラムに次が含まれているとします。

%INCLUDE partlist;

また、コンパイラの呼び出しコマンドは次のとおりであったとします。

mfplx source_file -isuffix .INC

この場合、コンパイラは partlist.inc という名前のファイルを検索します。

-l [ file]
コンパイラ・リストを生成します。file は、このリストが出力されるファイルの名前です。ファイル名を指定しない場合、コマンド・ラインのソース・ファイル名の後に、このオプションを配置する必要があります。そうしないと、エラー・メッセージが表示されます。リストが含まれるファイルのデフォルト名は、xxx.list で、xxx は名前に含まれる最後の「.」(ある場合) まで (ただし「.」自体は含まない) のソース・ファイル名です (パス名は除きます)。例えば、ソース・ファイル名が prog.pl1 の場合、デフォルトのリストは prog.list (Windows システムの場合は prog.lst) です。-exp、-map、または -xref が指定されている場合は、デフォルトでコンパイラ・リストが生成されます。
-longint
Fixed Binary 変数のデフォルト精度を (15) から (31) に変更します。
-lowercase
大文字の内部、外部の変数および定数の名前を、すべて小文字に変換します。
-macro
Open PL/I マクロ・プリプロセッサ mfpp を呼び出します。プリプロセッサのデフォルトの出力ファイル名は xxx.pp です (xxx はソース・ファイルの名前)。-pp オプションが指定されていない場合、コンパイル・フェーズの完了後に xxx.pp ファイルは削除されます。-macro オプションは、mfplx のみに適用されます。
-map
リスティング・ファイルの最後に記憶域の割り当てマップを生成します。
-map
次のいずれかを実行します。
  • コロンまたは引数を指定せずに -map を使用した場合、リスティング・ファイルの最後に記憶域の割り当てマップが生成されます。
  • コロンおよび引数を指定して -map を使用した場合 (例:-map:filename (filename はリンカ・マップ・ファイルのファイル名))、このオプションは ldpli に渡され、指定されたファイル名のリンカ・マップが生成されます。

-map-map:filename は一緒に使用できます。

-margins l,r
マージンを設定します。コンパイラは、ソース・ファイル内のこのマージンの内側の文字はソース・コードとして解釈し、その外側の文字はすべて無視します。l は、ソース・コードとして解釈される一番左の文字の列番号、r はその一番右の文字の列番号です。タブが使用されている場合、各タブは 1 つの文字としてカウントされます。-margins オプションは、ソースの *PROCESS 文によりオーバーライドされる場合があります。
注:左右のマージンを区切るカンマの前後には、スペースを入れないでください。
-names
コンパイラ・オプションを介して識別子に言語外の文字を追加します。*PROCESS NAMES() と実質的に同様です。

例:

-names 'string1' [ 'string2' ]
string1
識別子に追加する言語外の文字
string2

対応する大文字 (オプション)

デフォルトは次のとおりです。

-names '$@#' '$@#'

言語外の文字を使用しない場合、コンパイラ・オプションは次のようになります。

-nonames

-nonames-names を一緒に使用することはできません。競合するオプションのため、一緒に使用するとエラーが発生します。

-nonames -names ...

追加の文字には、必要に応じてデフォルトの $@# またはサブセットと、追加の言語文字を指定する必要があります。

-names '$@#Ј'

便宜を図るため、上記の文字列の代わりに 0xDD..DD 形式の 16 進定数を使用できます。

-names 0x402324a3
-nest
DO ... END、PROC ... END などのネストがリスティング・ファイルで表示されるようにします。リスティング・ファイルの詳細については、-l オプションを参照してください。
-nodebuginfo
%FILE および %LINE 情報で、改行しないようにコンパイラに指示します。
-nodefext

-nodefext オプションは、STATIC EXTERNAL 変数および外部ファイル定数の初期値が定義されないようにします (デフォルト)。詳細については、-defext コンパイラ・オプションを参照してください。

また、各ファイル定数は、それぞれ -defext を使用してコンパイルされた 1 つのモジュールだけで宣言されている必要があります。-defext が使用されている場合、ファイルの宣言で指定されているファイル属性は、ファイルが開いたときに指定される属性にマージされます。これは、VSAM/INDEXED I/O の実行時に非常に重要です。

-nofdasfb
浮動小数データが 2 進化 10 進数として内部的にコーディングされるようにします。デフォルト設定は -fdasfb です。
-nofmaxp
三角組み込み関数および特定の算術組み込み関数の精度を決定するのに、標準の PL/I 変換規則が使用されるようにします。デフォルトは -fmaxp です。
-noincludes
%INCLUDE ファイルの内容をコンパイルされたソースにインクルードしないように、コンパイラまたはマクロ・プリプロセッサ (またはその両方) に指示します。
-nolaxdcl
宣言されていない変数を、コンパイラで宣言しないようにコンパイラに指示します。
-nomacro
Open PL/I マクロ・プリプロセッサの呼び出しを抑制します。デフォルトは -nomacro です。
-[no]namesstring1 [string2]
拡張文字のサポートを提供します。次に例を示します。
-names 'string1' ['string2']
ここで、string1 は識別子に追加される言語外の文字、string2 はそれに対応する大文字 (オプション) です。文字列の代わりに、0xDD 形式の 16 進定数を使用できます。デフォルトは -names です。
-noobj
構文とセマンティクスのチェックのためだけにコンパイルを実行します。オブジェクト・ファイルは生成しません。
-noopt
最適化せずにコンパイルを実行します。これはデフォルトの設定です。
-norange
下付き文字参照およびサブストリング・バインドの妥当性をチェックするためのコードの生成を抑制します。このオプションは、プログラムのデバッグ後に、実行時間のパフォーマンスを改善するために使用してください。デフォルトは -norange です。
-noopt
最適化せずにコンパイルを実行します。これはデフォルトの設定です。
-not_symbol
代替 NOT シンボルを指定できるようにします。文字、10 進数、または 0xDD 形式の 16 進定数を使用できます。『言語リファレンス』マニュアルの %PROCESS も参照してください。
-nounixdebug
ONLOC 組み込み関数で使用するための、または致命的なランタイム・エラーが発生したときにソース・ファイルと行番号をレポートするために必要な、追加のオブジェクト・ファイル・データが生成されないようにします。
-nounrefexternals
オブジェクト・ファイル内で、プログラムで参照されていない外部エントリ・シンボルが生成されないようにします。これはデフォルトの設定です。
-nowarn
すべての警告 (WARNING) レベルの診断を抑制します。
-[no]xref
プログラムで使用されている名前の相互参照テーブルをインクルードしないようにコンパイラに指示します。詳細については、-xref コンパイラ・オプションを参照してください。
-O
コンパイラの最適化フェーズを呼び出します。このオプションは、-opt オプションに相当し、mfplx のみに適用されます。
-o file
file で指定した名前をオブジェクト・ファイルに命名します。-o が指定されていない場合、ファイルのデフォルト名は xxx.o で、xxx は名前に含まれる最後の「.」(ある場合) まで (ただし「.」自体は含まない) のソース・ファイル名です。例えば、ソース・ファイル名が prog.pl1 の場合、デフォルトのオブジェクト・ファイル名は prog.o (Windows システムの場合は prog.obj) です。

-c が指定されている場合、-o オプションがコンパイラに渡されます。-c が指定されていない場合は、-o は ldpli に渡されます。

-opt [level]
Open PL/I コンパイラによる最適化レベルを指定します。level は、最適化のレベル (1 ~ 3) を表します。デフォルト設定は -noopt です。level がインクルードされていない場合、プログラムはレベル 3 で最適化されます。-deb が指定されていない場合、-opt 2 が許可される最大レベルになります。-opt -deb は、-opt 2 -deb に相当します。
-optdli
IMS ECM DL/I オプションが IMS ECM に渡されるようにします。
-or_symbol
代替 OR シンボルを指定できるようにします。文字、10 進数、または 0xDD 形式の 16 進定数を使用できます。『言語リファレンス』マニュアルの %PROCESS も参照してください。
-pass
リモート DB2 データベースに接続します。ユーザ名とパスワードを指定して、このオプションを使用できます。フォーマットは次のとおりです。
–pass myid.mypass

ここで、myid はリモート DB2 に接続するためのユーザ名、mypass はパスワードです。mfplx はまず -pass でユーザ名 / パスワードをチェックし、指定されていればこれらの値を使用します。指定されていない場合は、DB2_USERNAME および DB2_PASSSWORD 環境変数に設定されている値が使用されます。

-pic
共有ライブラリへのリンクに適した、位置に依存しないコードを生成します。このオプションは、Solaris、SUSE Linux、および Red Hat Linux のみで使用可能です。
このオプションは、共有オブジェクトにインクルードするためにコードをコンパイルする場合に使用してください。
-pl1g
以前のリリースの動作と互換性がなくなるような形で変更されている特定の演算について、Open PL/I 5.0 よりも前のリリースの動作が、Open PL/I で保持されるようにします。例えば、TIME() は小数点以下 3 桁 (1/1000) を含む値を返しますが、-pl1g を使用すると、小数点以下 2 桁 (1/100) のみが返されるようになります。
-pp [file]
Open PL/I マクロ・プリプロセッサの出力ファイルのファイル名を指定します。-pp オプションで作成された出力ファイルは、コンパイル・フェーズの完了後も維持されます。このオプションは、mfplx および mfpp のみに適用されます。
-ppcics [file]
CICS プリプロセッサの出力のファイル名を指定します。-ppcics オプションで作成された出力ファイルは、コンパイル・フェーズの完了後も維持されます。このオプションは、mfplx のみに適用されます。
-ppdli[file]
EXEC プリプロセッサの出力のファイル名を指定します。-ppdli オプションで作成された出力ファイルは維持され、ダウンストリーム・プリプロセッサまたは PL/I コンパイラで消費されます。このオプションは、EXEC プリプロセッサ (EXEC PP) により処理され、サポートされます。
-ppdb2 [file]
DB2 プリプロセッサの出力のファイル名を指定します。-ppdb2 オプションで作成された出力ファイルは、コンパイル・フェーズの完了後も維持されます。このオプションは、mfplx のみに適用されます。
-progress_msgs
コンパイラの進捗メッセージを生成するように指定します。
-proto
エントリ宣言のパラメータと引数の対応について、より広範なプロトタイプ・チェックを提供します (-vax を使用する場合もデフォルトで想定されています)。

例:

declare myproc external entry(
fixed binary(31),
fixed binary(15),
fixed binary(15));

myproc:procedure(a,b,c);        /* mismatch diagnosed, -proto and -vax */
declare a fixed binary(15);
declare b fixed binary(15);
declare c fixed binary(15);

end t660;
-range
コンパイル時に静的配列にバインドされたすべての参照について妥当性検査を行い、すべての下付き文字参照およびサブストリング・バインドのランタイム妥当性をチェックするためのコードを生成します。チェック用コードは、実行時間のパフォーマンスを低下させるため、注意してください。

実行時に配列バインドまたはストリング・バインドを超過すると、必要に応じて SUBSCRIPTRANGE または STRINGRANGE 状態が発生します。下付き文字およびサブストリングに関連するプログラミング・エラーをデバッグするには、このオプションを使用してください。デバッグ済みコードには、-norange オプションを使用してください。デフォルトは -norange です。

-report [file]
Open PL/I ソース・チェッカの出力のファイル名を指定します。このオプションが使用されていない場合、チェッカの出力は標準のエラー・ファイルに転送されます。このオプションは、mfplx のみに適用されます。
-setnull n
NULL 組み込み関数から NULL ポインタ値 n が返されるように指定します (n は 10 進数)。このオプションが指定されていない場合、NULL 組み込み関数の値は、すべてのビットが 1 に設定されたアドレスになります。
-setstack
自動ストレージを 0 に初期化します。
-so
フェッチ可能なプロシージャとして使用できるオブジェクトを生成します。フェッチ可能な共有プロシージャ・オブジェクトをビルドするには、ご使用のオペレーティング・システムに基づき、-so または -dll を使用してください。
-shortint
デフォルトの FIXED BINARY 精度を 15 に設定するように、コンパイラに指示します。
-sql
SQL プリプロセッサを使用します。
-structure_fillers
埋め草文字が含まれる構造体に対して、警告を生成するようにコンパイラに指示します。
-stat
各コンパイラ・フェーズが完了するたびに、コンパイラの統計情報を標準出力に印刷します。
-stbout
出力オブジェクト・ファイルと一緒に、.stb ファイルを生成します。
注:このオプションを使用する場合、CODEWATCH_STBPATH および CODEWATCH_SRCPATH 変数を適切な位置に設定する必要がある場合があります。
-unaligned
このコンパイル時間スイッチは、RISC アーキテクチャで使用するために追加されました。このスイッチは、メモリの位置を指定する、すべての基底付き参照に対してバイト命令が生成されるようにします。
-unrefexternals
外部エントリ・シンボルがプログラムで参照されていない場合でも、オブジェクト・ファイルに外部エントリ・シンボルが生成されるようにします。
-v
コンパイル・フェーズおよびリンク・ステップ・フェーズに関連する stdout に情報を印刷します。このオプションは、mfplx のみに適用されます。
-variant string
Open PL/I マクロ・プリプロセッサにバリアント・ストリング string を渡します。このオプションは、mfplx のみに適用されます。
-vax
元々は Digital Equipment Corporation の VAX プラットフォーム向け PL/I コンパイラで記述されたプログラムを、次のように適合させます。
  • Fixed Binary(p ≤ 7) データ・タイプを、1 バイト符号付き 2 進整数として有効にします。
  • Float Binary(24) を Float Binary(23) に相当するものとして有効にします。
  • Float Binary(53) を Float Binary(52) に相当するものとして有効にします。
  • FIXED 属性が指定されていて、BINARY または DECIMAL が指定されていない場合、BINARY 属性が指定されているものとみなされます。
-warn
情報 (INFORMATIONAL) および警告 (WARNING) レベルの診断を抑制しません。これは、-flag I (デフォルト) に相当します。
-xref full short
リスティング・ファイル内に相互参照情報を生成し、生成される相互参照情報のタイプを指定します。相互参照は、プログラムで使用されている名前と、宣言または参照されている文の番号を示します。-xref を使用する場合、END 文でのラベル参照はリスティング・ファイルにインクルードされません。

リスト内のすべての識別子および属性をインクルードするには、-xreffull を使用してください。参照されていない識別子を除外するには、-xrefshort を使用してください。

-zp1
UNALIGNED 属性がレベル 1 構造体レベルで指定されている場合のように、すべての構造体がマップされるようにします。このオプションは、DEC VAX PL/I のバージョンとの互換性のために用意されています。