MISRA C:2023 Rule 1.3
説明
ルール定義
There shall be no occurrence of undefined or critical unspecified behaviour 1 .
根拠
未定義の動作または重要な未指定の動作につながる C コードは、予期せぬ結果や不正確な結果をもたらす可能性があります。このようなコードは、実装ごとに動作が異なる可能性があります。コードでの未定義の動作が原因で発生する問題は解析が困難です。これは、コンパイラが、未定義の動作が発生しないことを前提としてコードを最適化する可能性があるためです。
メモ
多くの MISRA C:2012 ルールでは、特定の未定義の動作または重要な未指定の動作に対応しています。このルールは、他のルールで対応されていないあらゆる未定義の動作または重要な未指定の動作に適用されます。
Polyspace 実装
Polyspace® は、以下の未定義の動作または重要な未指定の動作にフラグを設定します。
- ビット フィールドでの - offsetofの使用。
- 2 番目の引数が最初の引数の - structフィールドではない場合の- offsetofの使用。
- 識別子のない - definedの使用。
- 不完全な型の配列の使用。 
- 誤った数の引数を使用した関数形式のマクロの使用 (C90 のみ)。 
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
| グループ: 標準 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.