このリリースでは、主にコード解析機能の改善と、MISRA や Joint Strike Fighter などのコーディング標準のサポートの拡張 (詳細については「追加または更新されたコード解析ルール」を参照) が行われました。

このリリースは、C/C++test DTP Engine のマイナー アップデートです。詳細については 10.3.0 リリース ノートを参照してください。

追加または更新されたコード解析ルール

ルール IDヘッダー
CODSTA-MCPP-07std::bind、std::bind1st および std::bind2nd ではなくラムダを使用する
CODSTA-MCPP-08_a変数の宣言では、明示的な型名ではなく auto を使用する
CODSTA-MCPP-08_b関数の戻り値の型では、明示的な型名ではなく auto を使用する
CODSTA-MCPP-09例外を発生させない関数は noexcept 宣言する
CODSTA-MCPP-11_a_cpp11できるだけ constexpr を使用して定数変数を宣言する
CODSTA-MCPP-11_b_cpp11できるだけ constexpr を使用して関数を宣言する
CODSTA-MCPP-14前方参照でのオーバーロードを避ける

COMMENT-04

すべての関数にコメントを記述する

JSF-134

関数の用法 (制約) は、関数の先頭で文書化するべきである
JSF-071_c コンストラクターから仮想関数を呼び出してはいけない
JSF-071.1 コンストラクターから仮想関数を呼び出してはいけない
JSF-071.1_bデストラクターから仮想関数を呼び出してはいけない
JSF-119関数は、直接的か間接的かにかかわらず、その関数自身を呼び出してはならない
MISRA2004-16_2関数は、直接的か間接的かにかかわらず、その関数自身を呼び出してはならない
MISRA2008-7_5_4関数は、直接的か間接的かにかかわらず、その関数自身を呼び出してはならない
MISRA2012-RULE-17_2関数は、直接的か間接的かにかかわらず、その関数自身を呼び出してはならない
OOP-16コンストラクターから仮想関数を呼び出してはいけない
OOP-16_bデストラクターから仮想関数を呼び出してはいけない

RuleWizard モジュールのアップデート

RuleWizard に以下のノードおよびプロパティが追加されました。

  • IsMoveAssignmentOperator (move 代入演算子の場合 true)
  • IsCopyAssignmentOperator (copy 代入演算子の場合 true)
  • HasDefaultValue property (デフォルト値を持つ関数パラメーターの場合 true)
  • IsDeclInCommaList property (宣言子のカンマ区切りリストで宣言された変数の場合 true)
  • 'Vacuous destructor call' node (単純型または明示的なデストラクターを持たないクラスに対する明示的なデストラクターの呼び出しを表す)
  • NewDeclaration node (new 演算子の宣言を表す)
  • DeleteDeclaration node (delete 演算子の宣言を表す)

詳細については『RuleWizard 10.3.1 ユーザーズ ガイド』を参照してください。

その他のアップデートおよび拡張

  • フロー解析実行の改善
  • 日本語ローカライズのアップデート

解決済みの FR および PR

ID説明
121109Windows 7 でマシン ID が頻繁に変わる
121190CFG のビルドに失敗するため BD-PB-UCMETH ルールが違反を誤検出する
120641重要な関数に入らない場合 BD.EXCEPT.NR ルールが違反を誤検出する
119002"type=array" モードで同じ名前を持つデータ ソースを使用するとリンク エラーが発生する
121704COMMENT-04 ルールが違反をレポートしない
119493TC エディターで Ctrl+S キーが動作しない場合がある
120912WRWB 固有のテスト プロジェクトに "Refresh Test Project" アクションがない
121020Visual Studio 2015 アップデート 2 および 3 のサポート
121351MSVC-14 (VS2015) で共有 UDL のパースが失敗する
120760Link error for QArrayData(const QArrayData &) - (declared implicitly), required for copy that was eliminated, cannot be referenced -- it is a deleted function
118145CPPTEST_DS_GET_MEM_BUFFER の長さは NULL をバッファーの終端として扱うべきではない
116997Q 接尾辞のサポート
108733__float128 のサポート
120653汚染されたデータのソースとして 'getline()' を追加
120781ネストされたループを含むコードに対して BD-RES-LEAKS ルールが違反を誤検出する
110613getaddrinfo/freeaddrinfo のモデルが誤っているため、BD-RES-LEAKS ルールが違反を誤検出する
121371スコープが変更された後のインクリメンタル解析が非常に遅くなる
122022パース エラー: クラス テンプレート "F"  の引数がない
121434"int" 型にキャストされた "a" が 0 の場合、元の "a" の値が !=0 でも "if (a)" が誤って "false" と評価される (DC、SCC、MCDC が有効な C 言語の場合のみ)
  • No labels