2.6.2 オプションの優先順位

以下のオプションは,ほかの特定のオプションを無効とします。

-V,-h

ほかのすべてのオプションは無効となります。

-P

プリプロセス処理で終了するため,それ以降の処理に関するオプションの指定は無効となります。

ただし,無効となるオプションであっても,オプションに連動するマクロ定義は有効になります。

-Pと-cpu=S1を同時に使用する場合,プリプロセス後に処理を終了するためS1コア用のコード生成は機能しません。
しかし,-cpu=S1に連動する定義済みマクロ__RL78_S1__は有効となるため,プリプロセス処理で__RL78_S1__に依存する#ifdef等の定義は有効になります。

-S

コンパイル処理で終了するため,アセンブル処理以降の処理に関するオプションは無効となります。

-c

アセンブル処理で終了するため,リンカ処理以降の処理に関するオプションは無効となります。

-lang=c99

-misra2004および-convert_ccは無効となります。

 

以下のオプションは,ほかのオプションの一部の機能を無効とします。

-

-volatile

外部変数や#pragma address指定した変数は,-Oオプションを指定しても最適化されません。

-

-far_rom

ROMデータのnear/far属性は,-memory_modelオプションの指定有無にかかわらず,far属性となります。

-

-Oalias

-Oalias=noansiと-strict_stdを同時に指定した場合でも,-Oalias=ansiにはなりません。

 

以下の組み合わせでオプションを指定した場合は,警告を出力して,最後に指定したものが有効となります。

-

-P,-S,-c

-

-D,-U(シンボル名が同じ場合)

-

-Onothing,-Odefault,-Osize,-Ospeed

 

なお,オプションの指定順序により,以下のオプションは無効となります。

-

-Onothing,-Odefault,-Osize,-Ospeedの前に指定した-Oitem

-Oitemは,以下です。
-Ounroll,-Odelete_static_func,-Oinline_level,-Oinline_size,-Otail_call