MISRA C:2023 Rule 1.1
The program shall contain no violations of the standard C syntax and constraints, and shall not exceed the implementation's translation limits
R2024a 以降
説明
ルール定義
The program shall contain no violations of the standard C syntax and constraints, and shall not exceed the implementation's translation limits 1 .
Polyspace 実装
ルール チェッカーは、以下の問題をチェックします。次の点に注意してください。
- 仕様は、解析で使用されている C 標準のバージョンによって異なります。 - C 標準バージョン (-c-version)を参照してください。
- チェッカーで使用されている制限の一部は、オプション - -code-behavior-specificationsを使用して変更できます。- -code-behavior-specificationsを参照してください。
| 問題 | C 標準の依存関係 | その他の情報 | 
|---|---|---|
| 整数定数が long int(定数が符号付きの場合) またはunsigned long int(定数が符号なしの場合) の範囲外にあります。 | C90 でのみチェックされます。 | ルール チェッカーは、変数 long intのサイズの指定 (通常は 32 ビット) を使用します。ターゲット プロセッサ タイプ (-target)も参照してください。 | 
| サイズ 0 の配列が使用されています。 | C90 でのみチェックされます。 | |
| 翻訳単位で定義されたマクロの数が標準で指定されている制限を超えています。 | 許容されるマクロ定義の数は以下のとおりです。 
 
 | 翻訳単位は、ソース ファイルおよびソース ファイルに直接または間接的に含まれるヘッダー ファイルからなります。これらはコンパイル時に最小のオブジェクト ファイルを作成するために必要なファイルです。ルール チェッカーは、ソース内のマクロとソースに含まれるヘッダー内のマクロの合計数が標準で指定されている制限を超えていないことを要件とします。 | 
| 制御フロー ステートメント ( ifやwhileなど) 内の入れ子の深度が、標準で指定されている制限を超えています。 | 許容される入れ子の最大深度は以下のとおりです。 
 
 | |
| インクルード ファイルを使用した包含のレベル数が、標準で指定されている制限を超えています。 | 許容される包含の最大レベル数は以下のとおりです。 
 
 | |
| 構造体または共用体のメンバー数が標準で指定されている制限を超えています。 | 構造体または共用体の最大メンバー数は以下のとおりです。 
 
 | |
| 構造体内の入れ子のレベル数が、標準で指定されている制限を超えています。 | 入れ子の最大深度: 
 
 | |
| 1 つの列挙内の定数の数が標準で指定されている制限を超えています。 | 許容される列挙定数の最大数は以下のとおりです。 
 
 | |
| アセンブリ言語のステートメントが使用されています。 | すべての C 標準でチェックされます。 | |
| 非標準のプリプロセッサ命令が使用されています。 | すべての C 標準でチェックされます。 | ルール チェッカーは、C 標準に存在しないプリプロセッサ命令 (たとえば、 #ident、#alias、#assertなど) の使用にフラグを設定します。 | 
| プリプロセッサ命令の後に認識されないテキストがあります。 | すべての C 標準でチェックされます。 | ルール チェッカーは、プリプロセッサ命令 ( #include <header> code | 
| 名前なし共用体または空の structsが使用されています。 | C90 の場合にチェックされます。 | |
| enumに末尾のコンマが含まれています。 | C90 の場合にチェックされます。 | 
標準のコンパイル エラー メッセージは MISRA™ ルール違反にはなりません。
ヒント
同じ原因で発生するすべての結果を一括で正当化するには、[結果のリスト] ペインの [詳細] 列を使用します。列ヘッダーをクリックして、同じエントリをもつすべての結果がグループ化されるようにします。Shift キーを押したままで、最初の結果を選択した後、最後の結果を選択します。結果の 1 つにステータスを割り当てます。[詳細] 列が表示されていない場合は、他の列ヘッダーを右クリックして、この列を有効にします。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
| グループ: 標準 C 環境 | 
| カテゴリ: 必要 | 
| AGC カテゴリ: 必要 | 
バージョン履歴
R2024a で導入
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.