-Xcheck


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

[指定形式]

-Xcheck=comp

 

-

省略時解釈

Cソース・ファイルの互換性のチェックを行いません。

[詳細説明]

-

compに指定したコンパイラ用にコーディングしたCソース・ファイルを本コンパイラでコンパイルする際,互換性に影響するオプション指定,およびソース記述のチェックを行い,影響のある部分について警告,またはエラーを出力します。

-

compに指定可能なものを以下に示します。
これ以外のものを指定した場合は,エラーとなります。

shc

SHC用にコーディングしたCソース・ファイルをチェックします。

 

-

compを省略した場合は,エラーとなります。

-

主なチェック項目を以下に示します。

-

オプション:-Xbit_order=pos

言語仕様で規定されていない実装依存の内容がコンパイラ間で異なっています。

メッセージに出力されたオプションの選択を確認してください。

-

拡張機能:#pragma section,#pragma entry,#pragma stacksize,#pragma address,#pragma global_register

プログラムの動作に影響を及ぼす可能性がある拡張仕様です。

メッセージに出力された拡張仕様の記述を確認してください。

-

volatile修飾した変数

読み出しや書き込みのサイズがコンパイラ間で異なる場合があります。

volatile修飾したビット・フィールドは,本コンパイラでは宣言型より小さいサイズでアクセスすることがありますが,SHコンパイラでは宣言型のサイズどおりにアクセスします。

-

2項演算の整数拡張

unsigned int型とlong型をオペランドとする2項演算(加減乗除や比較など)の結果がSHコンパイラと異なる場合があります。

SHコンパイラでは-strict_ansiオプションを指定しない場合signed long型で演算します。

本コンパイラではオペランドをunsigned int型に変換してから演算します。

-

signed long型を超える整数定数の型

SHコンパイラではunsigned long型で表現可能な範囲の値をsigned long long型とします。

本コンパイラではunsigned long型で表現可能な範囲の値はunsigned long型とします。

-

ビット・フィールドの割り付け

SHコンパイラではビット・フィールドの型が直前のビット・フィールドの型と異なる場合はビットを連続して配置しません。

本コンパイラでは-Xpackオプションの指定に応じて連続して配置する場合があります。

-

構造体,およびビット・フィールド・メンバの割り付けについては,メッセージを出力しません。

割り付けを意識した宣言を行っている場合は,「4.1.3 データの内部表現と領域」を参照してください。

[使用例]

-

SHコンパイラ用にコーディングしたCソース・ファイルの互換性をチェックします。

>ccrh -Xcheck=shc -Xcommon=rh850 main.c