メインコンテンツ

MISRA C++:2008 Rule 0-1-1

A project shall not contain unreachable code

説明

ルール定義

A project shall not contain unreachable code. 1

根拠

このルールは、ステートメントのグループが構文的な理由により到達不能な状況にフラグを設定します。たとえば、return ステートメントの後ろのコードは常に到達不能です。

到達不能コードには不要な保守が伴い、プログラミング エラーを示すことがよくあります。

Polyspace 実装

Polyspace® は、コード内のステートメントに到達できない場合に欠陥を報告します。

トラブルシューティング

ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

int func(int arg) {
 int temp = 0;
 switch(arg) {
     temp = arg; // Noncompliant
     case 1:
     {
         break;
     }
     default:
     {
         break;
     }
 }
 return arg;
 arg++; // Noncompliant
}

以下のステートメントは到達不能です。

  • case または default ブロックに属さない switch ステートメント内のステートメント。

  • return ステートメントの後にあるステートメント。

チェック情報

グループ: Language Independent Issues
カテゴリ: 必要

バージョン履歴

R2013b で導入


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.