AUTOSAR C++14 Rule A5-2-4
reinterpret_cast を使用してはなりません。
説明
ルール定義
reinterpret_cast を使用してはなりません。
根拠
reinterpret_cast は通常、無関係な 2 つのデータ型間で明示的に変換を行うために使用します。たとえば、次の例では、reinterpret_cast は struct S* 型を int* に変換します。
struct S { int x; } s;
int* ptr = reinterpret_cast<int*> (&s);ただし、型の安全性に違反せずに reinterpret_cast を使用するのは困難です。reinterpret_cast の結果がポインターの場合、そのポインターをキャストして元の型に戻してから、ポインターをデリファレンスするのが安全です。
Polyspace 実装
ルール チェッカーでは、reinterpret_cast キーワードのすべての使用にフラグを設定します。
安全であると考えている reinterpret_cast の使用に対してルール チェッカーがフラグを設定する場合は、結果を正当化するコメントを追加します。詳細は、以下を参照してください。
Polyspace ユーザー インターフェイスでのバグ修正または正当化による結果への対処 (Polyspace ユーザー インターフェイスで結果をレビューする場合)。
Polyspace Access でのバグ修正または正当化による結果への対処 (Polyspace Access) (Web ブラウザーで結果をレビューする場合)。
コードへの注釈付けと既知の結果または許容可能な結果の非表示 (IDE で結果をレビューする場合)
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 式 |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入