挿入行漏れ分析画面の見かた

この画面では、Sider Scan が「挿入行漏れ分析」と呼んでいる分析手法を用いて重複コードペア間の単一、または複数行にわたる、挿入行漏れ(あるいはその反対の削除行漏れ) を検出します。挿入行漏れは、例えばヌルポインタのチェック漏れや、フラグの確認忘れである可能性があるため、確認をお薦めします。

挿入削除漏れ分析画面の例

上図の挿入行漏れ分析画面において

  • 背景が白色の部分は重複コード
  • 背景が灰色の部分はロジックが異なる部分
  • ピンクでハイライトされた行が、左右の重複コードを比較した際に削除されている行
  • 緑でハイライトされた行が、左右の重複コードを比較した際に挿入されている行

となります。

上記の例では、左のコードの155行から157行までのA.shape_.Size()0U であることを確認するためのifブロックが右のコードにはありません。白色の重複コードブロックのその他の行は左右でほぼ一致しています(左の187行目と右の162行目のテンプレートパラメータだけが違っています)。

つまり、この画面の解釈としては、左のコードでピンクでハイライトされた部分にA.shape_.Size() の値を確認するロジックを入れ忘れているか、あるいは、右のコードで緑でハイライトされたA.shape_.Size() の確認ロジックが不要か、いずれかである可能性がある、ということになります。

その他、左右のコードのタイトル部にはソースコードのフルパスが表示されています。また、解析結果のE-mail に添付されている「CIサーバーで詳細を見る」ボタンを押せば、ブラウザ上で上下左右にスクロール出来たり、CTRL-F でテキスト検索が利用可能な詳細ビューワーを開くことができます。ご活用下さい。