RENESAS TOOL NEWS 2004年12月16日 : RSO-SQMlint_2-041216D
MISRA Cルールチェッカ SQMlint
ご使用上のお願い
-- 誤った構造体の定義について --
|
MISRA Cルールチェッカ(ルネサスコンパイラ用拡張機能)SQMlint の使用上の注意事項を連絡します。
- 該当製品
SQMlint V.1.00 Release 1 および V.1.01 Release 00
- 内容
文法として不正な構造体定義の後に、その構造体をメンバの宣言に使用するとSQMlintが異常終了することがあります。
- 2.1 発生条件
- 以下の条件をすべて満たす場合に発生します。
| (1) | メンバを持たない構造体を定義する。 |
| (2) | 共用体を定義する。 |
| (3) | (2)のメンバとして、(1)の構造体をメンバに持つ構造体を宣言する。 |
- 2.2 発生例
例1
----------------------------------------------------------------
struct S { /* 発生条件(1) */
};
union U { /* 発生条件(2) */
struct {
struct S Byte0; /* 発生条件(3) */
} x;
int y;
};
----------------------------------------------------------------
例2
----------------------------------------------------------------
struct S1 { /* 発生条件(1) */
};
struct S2{
struct S1 Byte0;
};
union U { /* 発生条件(2) */
struct S2 x; /* 発生条件(3) */
int y;
};
----------------------------------------------------------------
- 回避策
構造体定義エラーが出ないように、プログラムに応じてCソースコードを変更してください。
- 恒久対策
次期バージョンで改修する予定です。