MISRA C:2012 Rule 8.15
All declarations of an object with an explicit alignment specification shall specify the same alignment
R2024a 以降
説明
ルール定義
All declarations of an object with an explicit alignment specification shall specify the same alignment 1 .
This rule comes from MISRA C™:2012 Amendment 3.
根拠
オブジェクトの宣言が複数あり、競合するアライメント指定がそれらの宣言に含まれていることは、未定義の動作です。
_Alignasを使用してオブジェクトのアライメントを明示的に指定する必要がある場合は、そのオブジェクトのすべての宣言で同一のアライメントを指定します。オブジェクトのアライメントを指定する必要がない場合は、そのオブジェクトのどの宣言にも
_Alignasを使用しないでください。
宣言と定義で明示的なアライメント指定を使用して、ハードウェア インターフェイスまたは Single Instruction Multiple Data (SIMD) 操作のメモリ アライメント要件と一致させるなどして、コードの実行を最適化します。
Polyspace 実装
コーディング ルール チェッカーは、同じ変数の複数の宣言に競合するアライメント指定がある場合に、このルールの違反を報告します。
Polyspace® は、構造体の宣言がこのルールに準拠しているかどうかを確認しません。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
| グループ: 宣言と定義 |
| カテゴリ: 必要 |
| 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.