レポートメニューから起動すると、各レポートはプロジェクト内のすべてのファイルにわたる特定のソースチェックに対するすべての例外のリストを提供します。あるいは、特定のファイルに対するすべてのソースチェックの例外を表示することもできます。このファイル固有のソースチェックレポートを起動するには、ファイルシンボルを右クリックしてコンテキストメニューを使用するか、ファイルエディタの [ファイル] > [レポート] メニューを使用します。
| 8 進定数 | 8 進定数の使用を示します(ルール7.1) |
| u 接尾語の欠落 | 符号なし型で表現される整数定数の接尾語 u または U が省略されていることを示します(ルール7.2) |
| 不適切な本質型 | 不適切な本質型を持つオペランドを示します(ルール10.1) |
| 演算処理で使用されるchar型 | 加減算処理で、本質的に文字型を持つ式が不適切に使用されていることを示します(ルール10.2) |
| より狭い型への代入" | 式がより狭い本質型または異なる本質型カテゴリに代入されていることを示します(ルール10.3) |
| 本質型の不一致 | 異なる本質型を持つオペランドの算術変換を伴う演算を示します(ルール10.4) |
| 型変換の問題 | 精度を失う可能性のある変換、または移植性のない算術やポインタの解釈に依存する可能性がある変換を示します。これには、移植性の問題につながる可能性がある、符号付きオペランドと符号なしオペランドの混在が含まれます。 また、符号付きオペランドの右シフトも含まれる。(例: int x; unsigned y; x = y;) |
| より広い型への複合代入 | より広い本質型に代入されている複合式を示します(ルール10.6) |
| より広い型を伴う複合算術演算 | 複合オペランドがもう一方のオペランドよりも狭い本質型を持つ算術変換を伴う演算を示します(ルール10.7) |
| より広い型への複合キャスト | 複合式がより広い本質型または異なる本質型カテゴリにキャストされることを示します(ルール10.8) |
| 関数ポインタキャストの不一致 | 関数ポインタと他の型との間のキャストを示します(ルール11.1) |
| ポインタキャストの不一致 | 異なるオブジェクト型へのポインタ間のキャストを示します(ルール11.3) |
| キャストで削除された型修飾子 | キャストにおける const または volatile 修飾子の削除を示します(ルール11.8) |
| 交換可能な関数が利用可能 | 交換可能な関数があるマクロを使用していることを示します(指令4.9) |
| 適切に終了していないエスケープシーケンス | 適切に終了していない 8 進数または 16 進数のエスケープシーケンスを示します(ルール4.1) |
| 3文字表記 | 3文字表記の使用を示します(ルール4.2) |
| 初期化子の中括弧または値の欠落 | 中括弧または値が不十分な配列、構造体、共用体、または列挙型の初期化を示します(ルール9.2) |
| 部分的にゼロになる配列 | 単一の"0"で初期化された配列変数を示します。全ての配列要素でゼロが指定される可能性があります |
| 部分的に初期化される配列 | 配列の次元よりも少ない値で初期化された配列変数を示します |
| 不明瞭な部分式 | 意図したように書かれていない可能性のある部分式を示します。静的に評価できる符号なし変数と負数の比較などがあります。疑わしい関係演算子の使用、丸括弧の欠如の可能性などをとらえます(例: x && y | z)(ルール12.1) |
| 範囲を超えたシフト | 右オペランドが左オペランドの本質型のビット幅の範囲外であるシフト操作を示します(ルール12.2) |
| カンマ演算子 | カンマ演算子の使用を示します(ルール12.3) |
| 定数のラップアラウンド | 式中の符号なし定数の評価でのラップアラウンドを示します(ルール12.4) |
| ブール式での代入 | ブール値式のオペランドとして代入演算子が使われていることを示します(ルール13.4) |
| 疑わしい代入 | 条件式または引数リストで、実際には比較を意図しているような疑わしい代入を示します |
| sizeofの潜在的な副作用 | オペランドに副作用の可能性がある式が含まれるsizeof 演算子の使用を示します(ルール13.6) |
| 算術演算で使われているポインタ | ポインタ型の式が +, -, +=, -= 演算子で使用されていることを示します(ルール18.4) |
| 前処理指令を含むマクロ引数 | 前処理指令のように見えるマクロ引数を示します(ルール20.6) |
| 括弧を必要とするマクロ | マクロ仮引数の展開された式で、括弧が必要であることを示します(ルール20.7) |
| 前処理指令内の未定義マクロ | #ifまたは#elif前処理指令で、未定義のマクロを使用していることを示します(ルール20.9) |
| # または ## が使われているマクロ | マクロ定義で # または ## 前処理演算子が使われていることを示します(ルール20.10) |
| 複数の # および/または ## が使われているマクロ | マクロ定義で2つ以上の # および/または ## 前処理演算子が使われていることを示します(ルール20.11) |
| ビルトイン演算子の数 | "1つの式の中から、ビルトイン演算子の数がユーザ指定の閾値を超えることを示します |
| 式内の関数の数 | 1つの式の中から、関数呼び出しの数がユーザ指定の閾値を超えることを示します |
| 古い型のアロケータ | malloc、realloc、calloc、またはfreeなど、C++プログラムで古い型のメモリアロケータの使用を示します |
| 移植性の問題 | sizeofのDiab拡張や集成体リテラルのGNU拡張など、ISO C/ISO C++と互換性のない言語拡張を示します(ルール1.2) |
| コメント文字を含むコメント | コメント内で /* または // を使用していることを示します(ルール3.1) |
| 行接合を含むコメント | // コメント中で行接合を使用していることを示します(ルール3.2) |
| static 指定子の欠落 | 内部結合を持つ関数やオブジェクトの宣言で、static指定子が使われていないことを示します(ルール8.8)) |
| 空文 | コードの欠落を示す可能性があるため、if、 else、 while の中の空文があることを示します |
| 疑わしい for ループ | 3つの制御式、または3つの制御式と for 本体がうまく形成されていない for ループを示します(ルール14.2) |
| ジャンプ文 | 制御の流れを理解しにくくする可能性があるため、goto、break、continue文の使用を示します |
| goto 文 | goto 文を使用していることを示します(ルール15.1) |
| 上方ラベルに飛ぶ goto 文 | 関数内で先に宣言されたラベルにジャンプする goto 文を示します(ルール15.2) |
| ブロック外に飛ぶ goto 文 | 同じブロックの外、あるいはその goto 文を囲むブロックの外のラベルにジャンプする goto 文を示します(ルール15.3) |
| 複合文が必要 | 欠落している可能性のある複合文 { } を示します。これは、else文、またはwhile、forから誤って分離された文によって生じる可能性のあるエラーも含まれます(ルール15.6) |
| 最後の else の欠落 | else 文で終了しない if ... else if 文の構成を示します(ルール15.7) |
| switchラベルのレベル | 最も近い複合文がswitch文の本体でないswitchラベルがあることを示します(ルール16.2) |
| 終端のないCase | break文など、明示的な制御の移転で終了しないswitch文のcase節を示します(ルール16.3) |
| デフォルト節の欠落 | デフォルト節のない switch文を示します(ルール16.4) |
| デフォルト節の順序 | "デフォルト節が最初でも最後でもないswitch文であることを示します(ルール16.5) |
| 単一のswitch節 | switch節が2つ未満のswitch文があることを示します(ルール16.6) |
| ブール型のswitch式 | 本質的にブール型を持つ switch の制御式があることを示します(ルール16.7) |
| 空のcatch文の一覧 | 空のステートメントを持つcatch文にフラグを立て、ロジックが欠落している可能性があることを示します |
| 無条件catch文 | 1つの句内のすべての例外をキャッチするcatch文にフラグを立て、ロジックが欠落している可能性があることを示します |
| 省略されたreturn | 関数呼び出し、または計算が記憶されない他の式の結果を無視する文を示します。これは通常、エラー結果が無視されることを示します |
| 過剰なポインタのネスト | 2レベル以上のポインタのネストを含む宣言があることを示します(ルール18.5) |
| 不適切なincludeディレクティブ | <filename> または "filename" 以外が続く #includeディレクティブがあることを示します(ルール20.3) |
| 戻り値型の欠落 | 戻り値型を指定しない関数宣言を示します(ルール8.1) |
| 仮引数名の欠落 | 仮引数名を指定しない関数宣言を示します(ルール8.2) |
| 空の仮引数リスト | (void) の代わりに空括弧 () を使用する関数宣言子を示します(ルール8.2) |
| 仮引数型の不一致 | 関数宣言と関数定義に仮引数型の不一致があることを示します(ルール8.3) |
| 関数宣言の欠落/不一致 | 関数定義と関数呼び出しの間の仮引数型の不一致を示します。 これは、プロトタイプが欠落していたり、一貫性がないC言語の記述に対して有効です |
| 可変個の実引数 | 可変個の実引数を持つ関数を示します |
| 外部宣言の型の不一致 | 関数宣言と外部宣言の仮引数型の不一致を示します(ルール8.4) |
| 宣言されていない関数 | 関数が事前に宣言されずに呼び出されていることを示します(ルール17.3) |
| K&R形式の宣言 | C++では有効ではない古いK&R形式の構文を使用する関数宣言子を示します |
| 潜在的静的関数 | 関数が定義されているファイルの内部からしか呼び出されていないにもかかわらず static と宣言されていないことを示します |