MISRA C:2012 Rule 13.1
Initializer lists shall not contain persistent side effects
説明
ルール定義
Initializer lists shall not contain persistent side effects 1 .
根拠
C99 は実行時のみ評価できる式が含まれる初期化子リストを許可します。ただし、リスト内の要素の評価順序は定義されていません。リスト内の要素の 1 つが別の要素で使用されている変数値を変更すると、評価順序のあいまいさにより未定義の値が発生します。したがって、このルールでは初期化子リスト内の式が、使用される変数を変更できないようにする必要があります。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
| グループ: 二次的影響 | 
| カテゴリ: 必要 | 
| AGC カテゴリ: 必要 | 
バージョン履歴
R2014b で導入
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.