FAQ

QA・C/QA・C++

警告メッセージに関する

ID.5

Q. QA Cの一部のメッセージの先頭に付与されている記号([U]や[C])は何を意味しているのでしょうか?

A.


QA Cの一部のメッセージの先頭に付与されている記号は、QA Cの次のグループ の略称を示しています。 これらのグループは、ISO C言語規格の未規定の動作、未定義の動作、処理系定義の 動作、翻訳限界、文法違反、言語拡張に関わるメッセージになるため、 他のメッセージと区別するために記号が付与されています。

表1 QA C解析メッセージ記号
記号 内容
[U] 明記された未定義の動作
CMA 未定義
[S] シンタックスエラー
[C] 標準制約違反
[E] 言語拡張
[I] 処理系定義
[u] 明記されていない未定義の動作
[L] 最小限界値を超過
[Q] QAC の設定に不備がある
[C99] C90 では定められておらず C99 で定められている文法が使用されている


なお、データフロー解析には、特定のデータフロー問題の識別メッセージに対する状況を示す語として、次の5つの用語が使用されます。

表2 データフロー解析メッセージ記号
記号 内容
<C> Constantの略となります。
厳密に言うと、Constantメッセージはデータフロー解析メッセージではありません。 これは、制御フロー解析または変数のステータスの解析を行わずに推定できる問題を検出します。
<D> Definiteの略となります。
Definiteメッセージは、明らかに起こる問題を検出します。
<A> Apparentの略となります。
Apparentメッセージは、コードの別の場所にある、条件付き演算(? :)、if文またはswitch文に関連付けられた特定のパスが常に冗長ではない場合に起こる問題を検出します。
<S> Suspiciousの略となります。
Suspiciousメッセージは、ループ構造の実行中に、ある条件が実現しない場合に起こる問題を検出します。
<P> Possibleの略となります。
Possibleメッセージは、「データフロー解析エンジンの制約」または「コードがより決定的な結論を導けるように記述されていない」ことが原因で、不確実になっている問題を検出します。
※データフロー解析については、「データフロー解析(DFA)とはなんですか?」をご覧ください。

<< 警告メッセージに関するに関するFAQ一覧へ戻る