AUTOSAR C++14 Rule M5-0-3
A cvalue expression shall not be implicitly converted to a different underlying type.
説明
ルール定義
A cvalue expression shall not be implicitly converted to a different underlying type.
根拠
このルールにより、式が別の型に変換されたとき、式の結果がオーバーフローしないようにします。
Polyspace 実装
このチェッカーによってフラグが設定される式は、MISRA™ C++ ドキュメンテーションの cvalue 式の詳細仕様に従います。
cvalue 式の基となるデータ型は、この式にあるオペランドのデータ型のうち範囲が最も広いものです。たとえば、2 つの変数を加算する場合、一方の変数が int8_t 型 (char の typedef) で、もう一方の変数が int32_t 型 (int の typedef) であれば、この加算の潜在型は int32_t です。合計を int8_t 型の変数に代入すると、ルールに違反します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 式 |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入