RENESAS TOOL NEWS 2008年09月01日 : 080901/tn2
| MISRA C ルールチェッカ SQMlint ご使用上のお願い |
MISRA C ルールチェッカ SQMlintの使用上の注意事項を連絡します。
- 初期化式に対するルール1違反メッセージについての注意事項
1. 該当製品
MISRA C ルールチェッカ SQMlint
V.1.00 Release 1 ~ V.1.03 Release 00
2. 内容
グローバル変数または関数内static変数の初期化式に対し、出力されるはずの
ない以下のルール1違反メッセージが出力される場合があります。
[MISRA(1) Complaining] non-constant expression of initializer for
static object
2.1. 発生条件
以下のいずれかの条件を満たす場合に発生します。
(1) グローバル変数の初期化子として、多次元配列のアドレスを設定して
いる。
(2) 関数内static変数の初期化子として、多次元配列のアドレスを設定して
いる。
2.2. 発生例
発生条件(1)項の例
------------------------------------------------------
char ary[5][5];
const char* ptr = &ary[3][3];
------------------------------------------------------
発生条件(2)項の例
------------------------------------------------------
void func(void)
{
static char ary[5][5];
static const char* ptr = &ary[3][3];
}
------------------------------------------------------
3. 解決策
該当するルール1違反メッセージは無視してください。
4. 恒久対策
次期バージョンで修正する予定です。