Everything
2.5.1 コンパイル・オプション

ここでは,コンパイル・フェーズのオプションについて説明します。

 

オプションに関する注意事項を以下に示します。

-

オプションの大文字/小文字は区別します。

-

パラメータとして数値を指定する場合は,10進数,または“0x”(“0X”)で始まる16進数での指定が可能です。
16進数のアルファベットは,大文字/小文字を区別しません。

-

パラメータとしてファイル名を指定する場合は,パス付き(絶対パス,または相対パス)での指定が可能です。
パスなし,および相対パスで指定する場合は,カレント・フォルダを基準とします。

-

パラメータ中に空白を含める場合(パス名など)は,そのパラメータ全体をダブルクォーテーション(")で囲んでください。

 

オプションの分類と説明を以下に示します。

表 2.2

コンパイル・オプション

分類

オプション

説明

バージョン/ヘルプ表示指定

-V

ccrhのバージョン情報を表示します。

-h

ccrhのオプションの説明を表示します。

出力ファイル指定

-o

出力ファイル名を指定します。

-Xobj_path

コンパイル途中に生成されるオブジェクト・ファイルを保存するフォルダを指定します。

-Xasm_path

コンパイル途中に生成されるアセンブリ・ソース・ファイルを保存するフォルダを指定します。

-Xprep_path

プリプロセス処理済みファイルを保存するフォルダを指定します。

ソース・デバッグ制御

-g

ソース・デバッグ用の情報を出力します。

-g_line 【V1.05.00以降】

最適化時にソース・デバッグ用の情報を強化します。

デバイス指定

-Xcommon

デバイス共通のオブジェクト・ファイルを生成することを指定します。

-Xcpu

指定したコア向けのオブジェクトを生成することを指定します。

処理中断指定

-P

入力ファイルに対してプリプロセス処理のみ実行します。

-S

アセンブル以降の処理を実行しません。

-c

リンク以降の処理を実行しません。

プリプロセッサ制御

-D

プリプロセッサ・マクロ,およびアセンブラ・シンボルを定義します。

-U

-Dオプションによるプリプロセッサ・マクロ,およびアセンブラ・シンボルの定義を解除します。

-I

インクルード・ファイルを検索するフォルダを指定します。

-Xpreinclude

コンパイル単位の先頭にインクルードするファイルを指定します。

-Xpreprocess

プリプロセス結果の出力を制御します。

C言語制御

-lang 【V1.07.00以降】

言語規格を指定します。

-strict_std 【V1.07.00以降】

Cソース・プログラムを言語規格に厳密にあわせて処理します。

-Xenum_type

列挙型に対して,どの整数型として扱うかを指定します。

-Xvolatile

外部変数のvolatile化を指定します。

-Xcheck

Cソース・ファイルの互換性をチェックします。

-Xmisra2004 【Professional版のみ】

MISRA-C:2004ルールによるソース・チェックを行います。

-Xmisra2012 【Professional版のみ】

MISRA-C:2012ルールによるソース・チェックを行います。

-Xignore_files_misra 【Professional版のみ】

MISRA-C:2004またはMISRA-C:2012ルールによるソース・チェックの対象外のファイルを指定します。

-Xcheck_language_extension 【Professional版のみ】

言語拡張により部分抑止されるMISRA-C:2004またはMISRA-C:2012ルールのソース・チェックを有効にします。

-misra_intermodule 【Professional版のみ】 【V2.01.00以降】

複数ファイルにまたがるMISRA-C:2012ルールによるソース・チェックを行います。

-Xuse_fp16 【Professional版のみ】 【V1.05.00以降】

半精度浮動小数点型の使用を指定します。

日本語/中国語文字列制御

-Xcharacter_set

日本語/中国語の文字コードを指定します。

最適化指定

-O

最適化のレベル,または各最適化項目の詳細を指定します。

-Xintermodule

大域最適化を行います。

-Xinline_strcpy

標準ライブラリ関数strcpy,strcmp,memcpy,memsetの呼び出しをインライン展開します。

-Xmerge_string

文字列定数をマージします。

-Xalias

ポインタ指示先の型を考慮した最適化の指定を行います。

-Xmerge_files

複数のCソース・ファイルをマージしてコンパイルを行います。

-Xwhole_program

コンパイル対象ファイルがプログラム全体であることを仮定して最適化を行います。

-library 【V2.00.00以降】

標準ライブラリ関数の呼び出しをインライン展開します。

-goptimize 【V2.01.00以降】

リンク時最適化用の情報を生成します。

生成コード制御

-Xpack

構造体パッキングを行います。

-Xbit_order

ビット・フィールドのメンバの並び順を指定します。

-Xpass_source

出力するアセンブリ・ソース・ファイル中にCソース・プログラムをコメントとして出力します。

-Xswitch

switch文のコード出力方式を指定します。

-Xreg_mode

レジスタ・モードを指定します。

-Xreserve_r2

r2レジスタを予約します。

-r4 【V1.07.00以降】

r4レジスタの扱い方を指定します。

-Xep

epレジスタの扱い方を指定します。

-Xfloat

浮動小数点演算命令の生成を制御します。

-Xfxu 【V2.00.00以降】

FXU命令の使用を制御します。

-Xcall_jump

関数呼び出しの分岐命令の生成を制御します。

-Xfar_jump

far jumpの出力を制御します。

-Xdiv

除算に対して,div,およびdivu命令を生成します。

-Xcheck_div_ov

除算時にOVフラグのチェックを行います。

-relaxed_math 【V2.00.00以降】

厳密さより効率を重視した浮動小数点演算コードを生成します。

-Xuse_fmaf

積和演算命令を生成します。

-use_recipf 【V2.00.00以降】

recipf命令を生成します。

-approximate 【V2.02.00 以降】

浮動小数点演算を,同等の近似計算で置き換えます。

-Xunordered_cmpf

浮動小数点比較において,無効演算例外の検出を行います。

-Xmulti_level

マルチコア用プログラムの生成を指定します。

-Xpatch

パッチを適用します。

-Xdbl_size

double型およびlong double型の精度を指定します。

-Xround

浮動小数点定数の丸めモードを指定します。

-Xalign4

分岐先アドレスのアライメントを指定します。

-Xstack_protector/-Xstack_protector_all 【Professional版のみ】

スタック破壊検出コード生成を指定します。

-Xsection

データのデフォルト・セクションを指定します。

-Xcheck_exclusion_control 【V1.04.00以降】

排他制御チェックを有効にします。

-Xresbank_mode 【V2.00.00以降】

resbank命令の動作モードを指定します。

-insert_dbtag_with_label 【V1.06.00以降】

dbtag命令の挿入を制御します。

-store_reg 【Professional 版のみ】【V1.06.00以降】

制御レジスタへの書き込み処理の検出や,レジスタ間の同期化処理の挿入を制御します。

生成コード制御

-control_flow_integrity 【Professional版のみ】 【V1.07.00以降】

不正な間接関数呼び出しを検出するコードを生成します。

-pic 【V1.07.00以降】

PIC機能を有効にします。

-pirod 【V1.07.00以降】

PIROD機能を有効にします。

-pid 【V1.07.00以降】

PID機能を有効にします。

情報ファイル出力制御

-Xcref

静的解析情報ファイルを出力します。

エラー出力制御

-Xerror_file

エラー・メッセージをファイルに出力します。

警告メッセージ出力制御

-Xno_warning

指定した警告メッセージの出力を抑止します。

-change_message 【V1.07.00以降】

指定した警告メッセージをエラーメッセージに変更します。

フェーズ個別オプション指定

-Xasm_option

アセンブル・オプションを指定します。

-Xlk_option

リンク・オプションを指定します。

サブコマンド・ファイル指定

@

サブコマンド・ファイルを指定します。