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