31.5.14 その他の設定
(1) -Bin1Byteオプション
(a) 形式
-Bin1Byte
-noBin1Byte
(b) 機能
- -Bin1Byte
- 1バイトの2進項目を有効にします。
- -noBin1Byte
- -Bin1Byteオプションの指定を打ち消します。
(2) -JPNオプション(HP-UX(IPF),HP-UX(IPF64),AIX(32),AIX(64),Linux(IPF64),Solaris(SPARC)で有効)
(a) 形式
-JPN,{Alnum|V3JPN}
-noJPN
(b) 機能
- -JPN,Alnum
- 日本語項目,日本語編集項目,および日本語文字定数をそれぞれ英数字項目,英数字編集項目,および英数字定数として扱います。これは,ホスト(VOS3)COBOL85でXCOBOL=(N)オプションを指定したときと同じ動作です。
- なお,-CompatiV3オプションを指定すると,このオプションが仮定されます。
- -JPN,V3JPN
- 日本語項目,日本語編集項目,および日本語文字定数をそれぞれ英数字項目,英数字編集項目,および英数字定数として扱うようにするためのオプションです。ただしSTRING文,UNSTRING文,またはINSPECT文では日本語項目,日本語編集項目,および日本語文字定数はそのままの属性として扱います。
- また,日本語項目または日本語編集項目の部分参照は,英数字項目または英数字編集項目として扱いますが,最左端の文字位置と長さは日本語文字数を表します。
- これは,ホスト(VOS3)COBOL85でXCOBOL=(-N)オプションを指定したときと同じ動作です。
- -noJPN
- -JPNオプションの指定を打ち消します。
(c) 注意事項
- -JPN,Alnumオプションと-JPN,V3JPNオプションを重複して同時に指定した場合,-JPN,V3JPNオプションが有効になり,-JPN,Alnumオプションが無効になります。
(3) -EquivRuleオプション
(a) 形式
-EquivRule,{NotExtend|NotAny|StdCode}
-noEquivRule
(b) 機能
拡張コード文字と標準コード文字を等価とみなさないようにするためのオプションです。
標準コードおよび拡張コードについては,マニュアル「COBOL2002 言語 標準仕様編 付録I 用語の定義(Terms and Definitions)」を参照してください。
- -EquivRule,NotExtend
- 拡張コード文字と標準コード文字を等価とみなしません。
- -EquivRule,NotAny
- 拡張コード文字と標準コード文字を等価とみなしません。さらに,標準コードの英大文字と標準コードの英小文字も等価とみなしません。
- この場合,予約語および文脈依存語はすべて標準コードの英大文字で記述しなければなりません。
- -EquivRule,StdCode
- 拡張コード文字と標準コード文字を等価とみなしません。さらに,日本語文字定数中に標準コードの空白を書いてもエラーとしません。ただし,日本語文字定数中に空白以外の標準コード文字を書いた場合は,警告レベルのエラーとなります。なお,日本語文字定数の標準コード文字数は偶数としてください。日本語文字定数の標準コード文字数が奇数の場合,警告レベルのエラーとし,日本語文字定数に標準コードの空白を追加します。
- また,72カラムより前に改行文字があるCOBOL原始プログラムは,改行文字から72カラムまでを空白に置き換えてコンパイルします。
- -noEquivRule
- -EquivRuleオプションの指定を打ち消します。
(4) -UscoreStartオプション
(a) 形式
-UscoreStart
-noUscoreStart
(b) 機能
- -UscoreStart
- 先頭が下線のCALL定数を指定できるようにします。
- 先頭が下線のプログラム名をCALL定数で指定した場合,定数の先頭から'_'または'__'(下線2個)を除いた名称でプログラムを呼び出します。
- -noUscoreStart
- -UscoreStartオプションの指定を打ち消します。
(5) -BinExtendオプション
(a) 形式
-BinExtend
-noBinExtend
(b) 機能
- -BinExtend
- 用途(USAGE句)が2進(BINARY,COMP,COMP-4)のデータ項目に指定できる初期値(VALUE句の値)を拡張します。
- PICTURE句で指定したけた数とVALUE句に指定できる値との対応は次のとおりです。
PICTURE句で指定したけた数 | VALUE句に指定できる値 |
---|
1~4けた | -215~215-1 |
5~9けた | -231~231-1 |
10~18けた | -999,999,999,999,999,999~999,999,999,999,999,999 |
- -noBinExtend
- -BinExtendオプションの指定を打ち消します。
(6) -MinusZeroオプション
(a) 形式
-MinusZero
-noMinusZero
(b) 機能
符号付き内部10進項目または符号付き外部10進項目への転記で切り捨てが発生した結果,負の符号を持つゼロ(以下,-0と表記します)が発生することがあります。この-0は演算や比較で数値として参照する場合は,正の符号を持つゼロ(以下,+0と表記します)と同じに扱われ,プログラムの動作には影響しません。しかし,DISPLAY文で表示したり,上位の集団項目で参照したり,REDEFINES句で別の属性として参照した場合に,実行結果が異なることがあります。-MinusZeroオプションは,符号付き内部10進項目および符号付き外部10進項目に,ほかのデータ項目の値や演算結果を転記する場合に発生した-0を強制的に+0に変換して,-0の発生を防止するオプションです。他システムや他社のCOBOLとのデータの互換性や移行性が向上します。
- (例1)
01 A PIC S9(5) USAGE DISPLAY.
01 B PIC S9(5) USAGE DISPLAY VALUE 0.
COMPUTE A = B - 0.1.
- 右辺の式の結果は-0.1になり,それをAに格納する際に,小数部が切り捨てられて-0となる。※-MinusZeroオプションを指定すると,-0が+0に変換されてAに格納される。
- 注※
- ただし,演算結果が必ず-0になるとは限りません。
- (例2)
01 A PIC S9(4) USAGE DISPLAY.
01 B PIC S9(5) USAGE DISPLAY VALUE -10000.
MOVE B TO A.
- Aに格納する際に,10,000の最上位けたの1が切り捨てられて-0となる。
- -MinusZeroオプションを指定すると,-0が+0に変換されてAに格納される。
- -MinusZero
- 負の符号を持つゼロ(-0)を強制的に正の符号を持つゼロ(+0)に変換します。
- -noMinusZero
- -MinusZeroオプションの指定を打ち消します。
(c) 注意事項
- -MinusZeroオプションは,符号付き外部10進項目への転記および符号付き内部10進項目への転記に対してだけ有効です。したがって,-MinusZeroオプションを指定していても,REDEFINES句や集団項目名で,10進項目を10進項目以外の項目として転記した場合,-0(例えば,内部10進数3けたの場合にはX'000D')がそのまま転記されます。
(7) -TruncCheckオプション
(a) 形式
-TruncCheck〔,Binary〕
-noTruncCheck
(b) 機能
- -TruncCheck
- 転記での送り出し側作用対象のサイズをチェックします。
- 送り出し側作用対象のけた数が受け取り側作用対象のけた数より大きい場合は,メッセージが出力されます。
- -TruncCheck,Binary
- -TruncCheckオプションのチェックに加え,送り出し側作用対象が2進項目で,受け取り側作用対象が外部10進項目/内部10進項目のとき,送り出し側作用対象の2進項目は格納可能な最大けた数でチェックします。
- -noTruncCheck
- -TruncCheckオプションの指定を打ち消します。
(c) -TruncCheckオプションのチェック対象
-TruncCheckオプションは,次の項目について,転記での送り出し側作用対象のサイズをチェックします。
- チェック対象となる項目
- 外部10進項目
- 内部10進項目
- 2進項目(1バイト2進項目を含む)
- 数字定数(16進数字定数を含む)
- 固定長集団項目
- 英数字項目
- 英数字定数(16進英数字定数を含む)
- ALL英数字定数
- 数字型,整数型,または英数字型の,組み込み関数※および利用者定義関数
- 注
- 送り出し側作用対象,または受け取り側作用対象のどちらかに,次に示す項目がある場合はチェックしません。
- 対象項目以外の項目
- 部分参照がある項目
- COMP-X項目
- 注※
- 組み込み関数のけた数については,マニュアル「COBOL2002 言語 標準仕様編 11.6 関数の表現形式」を参照してください。
- チェック対象となる転記の個所
- VALUE句
- 画面節(WINDOW SECTION)のSOURCE句※2
- ACCEPT文の書き方2(日付と時刻を取得するACCEPT文)
- INITIALIZE文のREPLACING指定
- MOVE文
- READ文のINTO指定
- RELEASE文のFROM指定
- RETURN文のINTO指定
- SET文の書き方4(条件設定のSET文)
- WRITE文のFROM指定
- COMPUTE文(送り出し側作用対象が単一の数字項目や数字定数の場合)
- 上記以外の算術文(中間結果のけた数※1が受け取り側作用対象のけた数より大きい場合※3)
- 注※1
- 中間結果のけた数については,「5.2.4 演算の中間結果」を参照してください。
- 注※2
- HP-UX(IPF),HP-UX(IPF64),AIX(32),AIX(64)で有効です。
- 注※3
- HP-UX(IPF64),Linux(x64)の場合,-MaxDigits38オプションおよび-IntResult,DecFloat40オプションを指定しているときは,常に中間結果のけた数の方が大きいと判定します。
- 受け取り側作用対象が英数字の場合
- 受け取り側作用対象が固定長集団項目のときはバイト数で比較されます。
- 送り出し側作用対象が数字で,受け取り側作用対象が英数字のときは,送り出し側作用対象はけた数(小数けたを含む)で比較します。
- -H8Switchオプションが指定してあり,送り出し側作用対象が数字で受け取り側作用対象が英数字のときは,数字項目はバイト数で比較されます。
- 受け取り側作用対象が数字の場合
- 整数けた数で比較します。
- 次のすべての条件を満たすときはチェックしません。
・-DigitsTruncオプションの指定がある
・-MaxDigits38オプションおよび-IntResult,DecFloat40オプションを指定していない(HP-UX(IPF64),Linux(x64)の場合)
・受け取り側作用対象が2進項目である
・VALUE句の転記ではない
- 送り出し側作用対象が18けた※を超える英数字項目のときはチェックしません。
- 注※
- HP-UX(IPF64),Linux(x64)の場合,-MaxDigits38オプションおよび-IntResult,DecFloat40オプションを指定しているときは,38けたとなります。
- 送り出し側が2進項目で,受け取り側が外部10進項目/内部10進項目の場合の規則(-TruncCheck,Binaryオプション指定時のチェック項目)
- 整数けた数の比較で,送り出し側作用対象のけた数が大きいときは,メッセージを出力します(-TruncCheckと同じチェック)。
- 整数けた数の比較で,送り出し側作用対象のけた数が大きくなく,次に示す2進項目に格納可能な最大けた数が,受け取り側作用対象の整数けた数より大きいときは,メッセージを出力します(-TruncCheck,Binary固有のチェック)。
PICTURE句のけた数※1 | 2進項目に格納できる最大けた数※2 |
---|
1~2けた | 5けた (-Bin1Byte指定時は3けた) |
3~4けた | 5けた |
5~9けた | 10けた |
10~18けた | 19けた |
- 注※1
- 整数部と小数部のけた数の合計値です。
- 注※2
- 小数部があるときは,小数部のけた数を除いたけた数です。
- (例)
01 A PIC 9(4)V9(2) COMP.
- 上記の場合,整数部と小数部のPICTURE句のけた数の合計値は6けたになります。2進項目ではPICTURE句のけた数6けたで格納できる最大けた数は,10けたになりますが,これから小数部のけた数2を除いた8けたを使用します。
- -TruncCheckオプションと-TruncCheck,Binaryオプションの相違点
- 次に-TruncCheckオプションと-TruncCheck,Binaryオプションの相違点を示します。
項目 | -TruncCheck | -TruncCheck,Binary |
---|
MOVE B5 TO E6※ | ノーエラー | お知らせのメッセージを出力する |
MOVE B6 TO E6※ | ノーエラー | お知らせのメッセージを出力する |
MOVE B7 TO E6※ | お知らせのメッセージを出力する | お知らせのメッセージを出力する |
- 注※
01 B5 PIC 9(5) COMP.
01 B6 PIC 9(6) COMP.
01 B7 PIC 9(7) COMP.
01 E6 PIC 9(6).
(8) -LowerAsUpperオプション
(a) 形式
-LowerAsUpper
-noLowerAsUpper
(b) 機能
- -LowerAsUpper
- CALL定数の英小文字を英大文字に変換した名称でプログラムを呼び出します。
- -noLowerAsUpper
- -LowerAsUpperオプションの指定を打ち消します。
(9) -CBLVALUEオプション
(a) 形式
-CBLVALUE
-noCBLVALUE
(b) 機能
- -CBLVALUE
- 環境変数CBLVALUEを有効にするためのオプションです。
- 環境変数CBLVALUEの詳細については,「31.6.3 コンパイラ環境変数の詳細」の「(14) CBLVALUE」を参照してください。
- -noCBLVALUE
- -CBLVALUEオプションの指定を打ち消します。
(10) -Repositoryオプション
(a) 形式
-Repository,{Gen|Sup}
-noRepository
(b) 機能
- -Repository,Gen
- ソースファイルからリポジトリファイルを作成するときに指定します。この場合,オブジェクトファイルは作成されません。
- なお,翻訳単位(プログラム定義を除く)が未完成でも,シグニチャと呼ばれるインタフェース部分が決まっていれば,リポジトリファイルを作成できます。詳細は,「32.3.2 リポジトリファイルの単独生成」を参照してください。
- 注意事項
- クラス定義,インタフェース定義,および関数定義が一つも格納されていないファイルに-Repository,Genオプションを指定した場合,オプションの指定が無効となります。
- -Repository,Genオプションと-Compileオプションが同時に指定された場合,-Repository,Genオプションが有効になり,-Compileオプションが無効になります。
- -Repository,Sup
- リポジトリファイルを更新しません。
- ただし,リポジトリファイルがない場合は,新規に作成します。
- また,オブジェクトファイルは,生成されます。
- -noRepository
- -Repositoryオプションの指定を打ち消します。
(11) -RepositoryCheckオプション
(a) 形式
-RepositoryCheck
-noRepositoryCheck
(b) 機能
- -RepositoryCheck
- 同じソースファイル中の翻訳単位の定義と外部リポジトリ中の情報に相違があるかどうかをチェックし,相違がある場合には警告メッセージを出力します。-RepositoryCheckオプションを指定した場合,リポジトリファイルは更新されません。
- 詳細は,「32.2.3 リポジトリファイルの生成方法」を参照してください。
- -noRepositoryCheck
- -RepositoryCheckオプションの指定を打ち消します。
(12) -Defineオプション
(a) 形式
-Define 翻訳変数名〔=値〕〔,翻訳変数名〔=値〕〕…
-noDefine
(b) 機能
- -Define 翻訳変数名〔=値〕〔,翻訳変数名〔=値〕〕…
- 翻訳変数名(条件翻訳で,ソース行の取り込みや読み飛ばしを制御する変数の名称)を定義します。
- 詳細は,「31.3.3 条件翻訳の利用」を参照してください。
- -noDefine
- -Defineオプションの指定を打ち消します。
(c) 注意事項
- 翻訳変数名は,31文字まで指定できます。32文字以上の文字列を指定した場合,コンパイル時に警告メッセージが出力され,先頭の31文字だけが翻訳変数名として有効となります。
- 翻訳変数名は,-Defineオプションに指定した文字列がそのまま使われます。この文字列には,COBOLの語の等価変換が適用されません。
-Defineオプションで定義した英小文字の翻訳変数名をCOBOLプログラム中で参照するには,-EquivRule,NotAnyオプションの指定が必要です。
- 翻訳変数の値は,160バイトまで指定できます。161バイト以上の文字列を指定した場合,コンパイル時に警告メッセージが出力され,先頭の160バイトだけが翻訳変数の値として有効となります。
- 翻訳変数名で使用できる文字は,COBOLの語で使用できる文字と同じです。ただし,コンパイラオプションの区切り文字となるイコール(=),コンマ(,)および半角空白文字は,指定できません。
- 翻訳変数の値を指定する場合の注意事項を,次に示します。
- 翻訳変数に指定した値は,すべて英数字定数として扱われます。
(例1)
コンパイラオプションに,-Define VER=3 を指定したとき,ソース中に
>>IF VER = '3'
という記述があれば,上記条件が真となる。
(例2)
コンパイラオプションに,-Define VER=5 を指定したとき,ソース中に
>>IF VER = '3'
という記述があれば,上記条件が偽となる。
- コンパイラオプションの区切り文字となるイコール(=),コンマ(,)は,指定できません。
- 文字列内に区切り文字(空白)を指定するときは,値全体をアポストロフィ(')で囲む必要があります。このとき,アポストロフィは値として扱われません。
(例)
-Define DEF01='aaa bbb'
翻訳変数名:DEF01
値 :aaa bbb
- -Defineオプションで定義した英小文字の翻訳変数名をCOBOLプログラム中で参照するには,-EquivRule,NotAnyオプションを指定する必要があります。
- プログラムに記述した文字コードと同じ文字コードで,翻訳変数名および翻訳変数の値を指定する必要があります。
なお,Linux(x86),Linux(x64)の場合,プログラムに記述した文字コードとコマンドライン引数の文字コードが異なるため,翻訳変数名および翻訳変数の値にUnicodeで多バイトとなる文字は含まないでください。多バイト文字を含む場合,指定した定義が有効になりません。
(13) -Detailsオプション
(a) 形式
-Details
-noDetails
(b) 機能
- -Details
- コンパイラオプションの詳細情報を標準エラー出力(stderr)へ出力します。
- 出力形式は,次のようになります。
- 形式
- COBOL2002インストールディレクトリ/bin/ccbl2002: ccbl2002オプション群 COBOLソースファイル名群
- ccbl2002オプション群
- ccbl2002コマンドが認識するオプションがすべて出力されます。ほかのオプションを指定したために仮定されたオプションも出力されます。反対に,ほかのオプションを指定したために無視されたオプションは出力されません。引数を指定した場合は引数も出力されます。
- COBOLソースファイル名群
- コンパイル対象のCOBOLソースファイル名がすべて出力されます。
- (例)
- 入力
ccbl2002 -TDInf -SrcList,CopyAll -SimSub PROG1 -Details sample1.cbl
- 出力
- COBOL2002インストールディレクトリ/bin/ccbl2002: ccbl2002 -DebugInf -TDInf -SrcList,CopyAll -Details -Optimize,1 -SimSub PROG1 -Main,System sample1.cbl
- 注
- COBOL2002インストールディレクトリは,OSによって異なります。
- UNIX32,Linux(IPF64)の場合
- /opt/HILNGcbl2k
- HP-UX(IPF64),AIX(64),Linux(x64)の場合
- /opt/HILNGcbl2k64
- -noDetails
- -Detailsオプションの指定を打ち消します。
(14) -OldFormオプション
(a) 形式
-OldForm '旧オプションの並び'
(b) 機能
- -OldForm '旧オプションの並び'
- 旧形式のオプション(UNIX COBOL85用のコンパイラオプション)を指定できるようにします。
(c) 注意事項
- -OldFormオプションはアポストロフィ(')で囲んで指定します。
指定例を,次に示します。
-OldForm '-P3 -v -Mw sample.cbl'
- -OldFormオプションに指定する旧オプションの並びに,旧オプションの引数ではない単独ファイル名を指定した場合,そのファイル名は無視されます。ただし,旧オプションの引数として指定したファイル名については,有効となります。
指定例を,次に示します。
-OldForm '-Mw sample.cbl subsample.cbl'
sample.cblは,-Mwオプションの引数として有効となりますが,subsample.cblは旧オプションの引数でない単独のファイル名のため,無視されます。
(15) -Helpオプション
(a) 形式
-Help
(b) 機能
ccbl2002コマンドのヘルプを表示します。
(c) 注意事項
- -Helpオプションを指定した場合,ほかのオプションやファイル名を指定しても無視されます。
- このオプションは,コマンドライン(ccbl2002コマンド)で指定できます。
(16) -Profileオプション
(a) 形式
-Profile,{Prof|Gprof}
-noProfile
(b) 機能
- -Profile,Prof (HP-UX(IPF),HP-UX(IPF64),AIX(32),AIX(64),Solaris(SPARC)で有効)
- profでのプロファイル用オブジェクトファイルを作成します。profの詳細については,システムのマニュアルを参照してください。
- -Profile,Gprof
- gprofでのプロファイル用オブジェクトファイルを作成します。gprofの詳細については,システムのマニュアルを参照してください。
- -noProfile
- -Profileオプションの指定を打ち消します。
(c) 注意事項
- プロファイリング(実行回数および実行時間の分析)の対象になるのは,プログラム,利用者定義関数,メソッド,およびプロパティメソッドです。それぞれ,次の名前でプロファイル情報が出力されます。nは,オブジェクトモジュール内で名前を一意にするためにつけられた番号です。
- HP-UX(IPF),HP-UX(IPF64),Solaris(SPARC)の場合
- 最外側のプログラム:プログラム名(ただし,-Mainコンパイラオプションが適用された最外側のプログラムはmain)
- 入れ子プログラム:$最外側プログラム名$n$_入れ子プログラム名
- 利用者定義関数:利用者定義関数名
- メソッド:$クラス名$n$_メソッド名
- GETプロパティメソッド:$クラス名$n$_GET$プロパティ名
- SETプロパティメソッド:$クラス名$n$_SET$プロパティ名
- Linux(x86),Linux(x64)の場合
- 最外側のプログラム:プログラム名(ただし,-Mainコンパイラオプションが適用された最外側のプログラムはmain)
- 入れ子プログラム:_最外側プログラム名_n_入れ子プログラム名
- 利用者定義関数:利用者定義関数名
- メソッド:_クラス名_n_メソッド名
- プロパティメソッド:プロファイル対象外
- Linux(IPF64)の場合
- 最外側のプログラム:プログラム名(ただし,-Mainコンパイラオプションが適用された最外側のプログラムはmain)
- 利用者定義関数:利用者定義関数名
- その他:プロファイル対象外
- AIX(32),AIX(64)の場合
- 最外側のプログラム:.プログラム名(ただし,-Mainコンパイラオプションが適用された最外側のプログラムは.main)
- 入れ子プログラム:.最外側プログラム名.n._入れ子プログラム名
- 利用者定義関数:.利用者定義関数名
- メソッド:.クラス名.n._メソッド名
- GETプロパティメソッド:.クラス名.n._GET$プロパティ名
- SETプロパティメソッド:.クラス名.n._SET$プロパティ名
- COBOLプログラムがCOBOL実行時ライブラリを使って実装されている機能を使用している場合,プログラムの実行時間の情報には実行時ライブラリの実行時間は含まれません。純粋にプログラムのオブジェクトコードの実行時間だけが対象となります。
- AIX(32),AIX(64),Linux,Solaris(SPARC)の場合,ENTRY文で指定した入口点に対しては,呼び出し回数に関する情報は,それぞれの入口点ごとに作成されます。しかし,実行時間の情報に関しては,ENTRY文に指定した入口点が呼び出された場合も,ENTRY文の入口点の実行時間の情報ではなく,ENTRY文を含むプログラムの実行時間の情報に累積されます。
- HP-UX(IPF),HP-UX(IPF64)の場合,ENTRY文で指定した入口点の呼び出しを個別にプロファイリングすることはできません。そのENTRY文を含むプログラムの呼び出しを行ったものとみなしてプロファイリングします。
- HP-UX(IPF),HP-UX(IPF64),AIX(32),AIX(64),Solaris(SPARC)の場合,profを使用して入れ子プログラムやクラス定義を含むCOBOLプログラムのプロファイル情報を出力するときは,profに-gオプションを指定してください。-gオプションの詳細については,システムのマニュアルを参照してください。
(17) -UniObjGenオプション(HP-UX(IPF),AIX(32),AIX(64),Linux(x86),Linux(x64)で有効)
(a) 形式
-UniObjGen
-noUniObjGen
(b) 機能
- -UniObjGen
- シフトJISで記述されたCOBOLソースから英数字定数をUTF-8に,日本語文字定数をUTF-16LEまたはUTF-16BEに変換したオブジェクトファイルを生成します。
- -noUniObjGen
- -UniObjGenオプションの指定を打ち消します。
(c) 注意事項
- 日本語文字定数の文字コードのバイトオーダは,-UniEndianオプションの指定に従います。
- このオプションを指定する場合,次のオプションは同時に指定できません。同時に指定した場合,このオプションが有効となり,次のオプションは無効になります。
-JPN -CompatiV3 -V3Rec
ただし,Linux(x86),Linux(x64)の場合,コンパイラ環境変数CBLV3UNICODEにYESを指定すると,このオプションを指定しても-CompatiV3および-V3Recオプションは有効となります。
- HP-UX(IPF),AIX(32),AIX(64)の場合,EUC環境下で-UniObjGenオプションを指定した場合,コンパイルエラーとなります。
- Linux(x86),Linux(x64)の場合,UTF-8環境下で,-UniObjGenオプションを指定しないでコンパイルすると,コンパイルエラーとなります。また,-UniObjGenオプションを指定する場合は,環境変数CBLSRCENCODINGを同時に指定する必要があります。
(18) -UniEndianオプション(HP-UX(IPF),AIX(32),AIX(64),Linux(x86),Linux(x64)で有効)
(a) 形式
-UniEndian,{Little|Big}
-noUniEndian
(b) 機能
- -UniEndian,Little
- 日本語文字定数をUTF-16LEに変換したオブジェクトファイルを生成します。
- -UniEndian,Big
- 日本語文字定数をUTF-16BEに変換したオブジェクトファイルを生成します。
- -noUniEndian
- -UniEndianオプションの指定を打ち消します。
(c) 注意事項
- このオプションは,-UniObjGenオプションが指定された場合だけ有効となります。
- -UniObjGenオプションが指定されていて,-UniEndianオプションが指定されていない場合,日本語文字定数は次のコードに変換されます。
- HP-UX(IPF),AIX(32),AIX(64)の場合:UTF-16BE
- Linux(x86),Linux(x64)の場合:UTF-16LE
(19) -Lx64ConventionCheckオプション(Linux(x64)で有効)
(a) 形式
-Lx64ConventionCheck
-noLx64ConventionCheck
(b) 機能
- -Lx64ConventionCheck
- Linux(x64) COBOL2002でC言語との連携を行うときに問題となる可能性がある場合(次に示す条件を満たす場合),警告レベルのエラーメッセージを出力します。詳細については,「19.1.2 CプログラムからCOBOLプログラムを呼び出す方法」の「表19-1 COBOLのデータ項目とCプログラムの型の対応」の注※1を参照してください。
- サイズが16バイト以下の集団項目を値渡し(BY VALUE)の引数および返却項目に指定している。
- 1.の集団項目の従属項目に内部浮動小数点項目がある。
- -noLx64ConventionCheck
- -Lx64ConventionCheckオプションの指定を打ち消します。
(c) 注意事項
- CALL文によって呼び出されるプログラムがCOBOLプログラムであっても警告レベルのエラーメッセージが出力されます。
(20) -ExternRefオプション(Solaris(SPARC)で有効)
(a) 形式
-ExternRef
-noExternRef
(b) 機能
- -ExternRef
- 8バイト境界に整列されていない外部属性を持つデータ項目を参照および更新できるようにするオプションです。外部属性を持つデータ項目への参照は,標準では,すべて8バイト境界に整列されていることを前提とした命令語に翻訳されます。しかし,C言語などの他言語で宣言された外部変数は,8バイト境界に整列されていないことがあります。そのため,COBOLプログラムが,外部属性を持つデータ項目を使って,Cプログラムなどの他言語で実体を割り当てられた,8バイト境界に整列されていないデータを参照および更新すると,実行時に異常終了する場合があります。このような場合に,このオプションを指定します。
- 外部属性を持つデータ項目が8バイト境界に整列されていないことが異常終了の原因の場合は,このオプションを指定することで,その問題が解決されます。
- なお,COBOLプログラムだけで外部属性を持つデータ項目を共有している場合や,他言語で実体を割り当てられた外部変数をCOBOLプログラムから正常に参照および更新できる場合は,このオプションの指定は不要です。
- -noExternRef
- -ExternRefオプションの指定を打ち消します。
(21) -MaxDigits38オプション(HP-UX(IPF64),Linux(x64)で有効)
(a) 形式
-MaxDigits38
-noMaxDigits38
(b) 機能
- -MaxDigits38
- 数字項目および数字定数に指定できる最大けた数を18けたから38けたに拡張します。外部10進形式および内部10進形式の数字項目と固定小数点数字定数で,けた数を拡張できます。詳細については,「27. 数字項目のけた拡張機能(HP-UX(IPF64),Linux(x64)で有効)」およびマニュアル「COBOL2002 言語 拡張仕様編 21. 数字項目のけた拡張機能」を参照してください。
- -noMaxDigits38
- -MaxDigits38オプションの指定を打ち消します。
(c) 注意事項
- -IntResult,DecFloat40オプションと同時に指定してください。-IntResult,DecFloat40オプションの指定がない場合,エラーメッセージが出力されます。
- -MaxDigits38オプション,-IntResult,DecFloat40オプション,および-Optimize,3オプションを同時に指定した場合,-Optimize,3オプションは無効となり,-Optimize,2オプションが仮定されます。
- -MaxDigits38オプションを指定しても,19~38けたの数字項目および数字定数が指定できない機能や文があります。詳細については,「27. 数字項目のけた拡張機能(HP-UX(IPF64),Linux(x64)で有効)」およびマニュアル「COBOL2002 言語 拡張仕様編 21. 数字項目のけた拡張機能」を参照してください。
(22) -IntResult,DecFloat40オプション(HP-UX(IPF64),Linux(x64)で有効)
(a) 形式
-IntResult,DecFloat40
-noIntResult
(b) 機能
- -IntResult,DecFloat40
- 算術演算の中間結果の表現形式を40けた10進浮動小数点形式にします。詳細については,「27.3 数字項目のけた拡張機能での演算の中間結果」を参照してください。
- -noIntResult
- -IntResultオプションの指定を打ち消します。
(c) 注意事項
- -MaxDigits38オプションと同時に指定してください。-MaxDigits38オプションの指定がない場合,エラーメッセージが出力されます。
- -IntResult,DecFloat40オプション,-MaxDigits38オプション,および-Optimize,3オプションを同時に指定した場合,-Optimize,3オプションは無効となり,-Optimize,2オプションが仮定されます。
- -IntResult,DecFloat40オプション,-MaxDigits38オプション,および-Compati85,Powerオプション(-Compati85,All指定による仮定時を含む)を同時に指定した場合,-Compati85,Powerオプションは無効となります。
- -IntResult,DecFloat40オプション,-MaxDigits38オプション,および-CompatiV3オプションを同時に指定した場合,-CompatiV3オプションは無効となります。なお,-CompatiV3オプション指定によって仮定された-V3Rec,Variableオプションおよび-JPN,Alnumオプションは無効になりません。