メインコンテンツ

AUTOSAR C++14 Rule A7-1-4

The register keyword shall not be used

説明

ルール定義

register キーワードを使用してはなりません。

根拠

register キーワードは将来のリリースで C++ 言語から削除される予定です。これにより、コードがコンパイルされなくなるか、未定義の動作を示すようになります。ほとんどのコンパイラは register 指定子を無視し、自分自身でレジスタを割り当てます。プロセッサのレジスタ内に特定のオブジェクトが存在することに依存している場合、コードが予期せぬ動作を示す可能性があります。

この問題を解決するには、register キーワードを削除します。

Polyspace 実装

Polyspace® は、オブジェクトのストレージ タイプが register となっている場合、そのオブジェクトの宣言にフラグを設定します。

トラブルシューティング

ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

#include <cstdint>  

int main() {  
  register std::int32_t x = 7; //Noncompliant  
  std::int32_t y = 7; //Compliant  
  return 0;  
}

この例では、Polyspace はキーワード register の使用にフラグを設定します。

チェック情報

グループ: 宣言
カテゴリ: Required、Automated

バージョン履歴

R2019a で導入