このリリースでは、特にコード解析機能の拡張およびサポート対象環境の拡充に重点が置かれました。
サポート対象コンパイラの拡充
- Green Hills Software Compiler for PPC 2017.1.x のサポート
サポート対象プラットフォームの拡充
- Windows Server 2016 のサポート
サポート対象 IDE の拡充
- Visual Studio 2017 のサポート
注意: C++test を利用するには、Visual Studio 2017 に特定の Visual Studio Workloads がインストールされている必要があります。詳細は「IDE」を参照してください。
フロー解析の拡張
スコープ外の関数およびファイルを解析対象とするようフロー解析を設定できるようになりました (詳細は「フロー解析」を参照)。
新規コード解析ルール
ルール ID | ヘッダー |
---|---|
GLOBAL-UNIQUETYPE | クラス、共用体、列挙型の名前 (修飾子があれば修飾子も) は一意の識別子でなければならない |
GLOBAL-UNUSEDFUNC | 外部リンケージを持つ定義されたすべての関数は少なくとも 1 度は使用されなければならない |
MISRA2008-0_1_10_b | 外部リンケージを持つ定義されたすべての関数は少なくとも 1 度は使用されなければならない |
MISRA2008-2_10_41 | クラス、共用体、列挙型の名前 (修飾子があれば修飾子も) は一意の識別子でなければならない |
1 次のルールは削除され、新しい MISRA2008-2_10_4 ルールで置き換えられました: MISRA2008-2_10_4_a, MISRA2008-2_10_4_b, MISRA2008-2_10_4_c
更新されたコード解析ルール
ルール カテゴリ | ルール ID |
---|---|
フロー解析 | BD-SECURITY-TDENV, BD-SECURITY-TDCONSOLE, BD-PB-CHECKRET |
コーディング規約 | CODSTA-10, CODSTA-11, CODSTA-61, CODSTA-67, CODSTA-112, CODSTA-CPP-02, CODSTA-CPP-11, CODSTA-CPP-66, CODSTA-MCPP-10_a, CODSTA-MCPP-10_b, CODSTA-MCPP-14, CODSTA-MCPP-16_b, CODSTA-MCPP-16_c, CODSTA-MCPP-16_d |
コメント | COMMENT-05 |
例外 | EXCEPT-17 |
書式 | FORMAT-26 |
初期化 | INIT-06 |
Joint Strike Fighter | JSF-051_a, JSF-071_b, JSF-081, JSF-082, JSF-117_b, JSF-127, JSF-132_a, JSF-142_a, JSF-163, JSF-164, JSF-185, JSF-186_h, JSF-194, JSF-202 |
MISRA C | MISRA-030 |
MISRA 2004 | MISRA2004-2_4, MISRA2004-5_4_a, MISRA2004-5_4_b, MISRA2004-5_4_c, MISRA2004-9_1, MISRA2004-10_1_g, MISRA2004-12_8, MISRA2004-13_3, MISRA2004-16_9 |
MISRA 2008 | MISRA2008-0_1_10, MISRA2008-2_7_2, MISRA2008-2_7_3, MISRA2008-3_9_1, MISRA2008-5_2_4, MISRA2008-5_8_1, MISRA2008-6_2_2, MISRA2008-6_4_3_c, MISRA2008-6_4_6, MISRA2008-8_4_4, MISRA2008-8_5_1, MISRA2008-15_3_6 |
MISRA 2012 | MISRA2012-DIR-4_4, MISRA2012-RULE-5_7_a, MISRA2012-RULE-5_7_b, MISRA2012-RULE-12_2, MISRA2012-RULE-18_8 |
メモリおよびリソース管理 | MRM-45 |
名前付け規則 | NAMING-05 |
オブジェクト指向 | OOP-34 |
最適化 | OPT-30 |
バグの可能性 | PB-23, PB-25, PB-47 |
セキュリティ | SECURITY-02, SECURITY-05, SECURITY-14, SECURITY-15, SECURITY-28, SECURITY-37 |
解決済みのバグおよび FR
バグ/FR ID | 説明 |
---|---|
CPP-40199 | GHS PPC 2017.1 コンパイラのサポート |
CPP-39947 | Windows Server 2016 のサポート |
CPP-37054 | Visual Studio 2017 IDE のサポート |
CPP-39500 | [C++test Desktop] Eclipse 4.7 Oxygen IDE のサポート |
CPP-31853 | 「MISRA2008-0_1_10_b: 外部リンケージを持つ定義されたすべての関数は少なくとも 1 度は使用されなければならない」の追加 |
CPP-36719 | 引数に符号なし型の単項マイナス (’-a') が含まれている場合、PB-47 が違反をレポートしないケースがある |
CPP-36964 | SECURITY-14 が scanf() のバリアントをチェックしない |
CPP-38107 | CODSTA-10 が "auto" 型をサポートしていない |
CPP-38218 | COMMENT-05 がマクロで定義された変数に対して違反をレポートしない場合がある |
CPP-38234 | MISRA2012-RULE-12_2 (MISRA2004-12_8) は if と同様にループの条件をチェックする必要がある |
CPP-38339 | printf() に関数パラメーターが渡されている場合、SECURITY-05 が違反をレポートしないことがある |
CPP-38408 | [C++test Desktop] 特定の違反で [テスト コンフィギュレーションの表示] アクションを実行すると、適切なコンフィギュレーションが表示されない |
CPP-38588 | PB-25 が std::initializer_list に対して誤った違反をレポートする |
CPP-38592 | MISRA2004-10_1_g が関数引数とプレーン char 型の間の暗黙的な変換をレポートしない場合がある |
CPP-39416 | CODSTA-11 がサンプル コードの違反を検出しない |
CPP-39489 | RuleWizard 関数キャスト関して 'cast' ノードのプロパティ 'Kind' が正しく機能しない |
CPP-39494 | malloc() で割り当てられたメモリが複数レベルの間接参照でポインターに代入されている場合、MRM-45 が違反を誤検出する |
CPP-39534 | d3dx10math.h(449) に対するコンパイル エラー C2059 |
CPP-39542 | [C++test Desktop] テスト ケース エディターの ctrl+space アシスタントで値の前にスペースが挿入されることがある |
CPP-39548 | C++test ランタイムで STRINGIZE マクロをリネーム |
CPP-39581 | MISRA2008-2_10_4 グローバル ルールの作成 |
CPP-39741 | [C++test Desktop] クエスチョン マークの SCC インストゥルメンテーションがコンパイル エラーの原因になる可能性がある |
CPP-39742 | [C++test Desktop] MemoryAnalysis および Stubs 機能がすべてのファイルに対して xharness を強制する (すべてのインストゥルメンテーション機能をオフにした場合も) |
CPP-39756 | [C++test Desktop] テスト コンフィギュレーション UI で一部のフロー解析詳細設定を変更できない |
PP-39758 | qcc: '-Wp' オプションによる c99 モードの有効化をサポート |
CPP-39804 | Parse error: type name is not allowed |
CPP-39834 | NAMING-05 が範囲ベースの for ループに対して違反を誤検出する |
CPP-39835 | メンバーの初期化が別の翻訳単位で行われている場合、INIT-06 が違反を誤検出する |
CPP-39838 | FORMAT-26 が Rvalue 参照に対して違反を誤検出する |
CPP-39839 | NAMING-05 が範囲ベースの for ループに対して違反を誤検出する |
CPP-39894 | [Docs] UNIX インストール スクリプトのエラー |
CPP-39912 | [C++test Desktop] 静的解析で SVN サーバー ポートが無視される |
CPP-39919 | MISRA2012-DIR-4_4 が複数行コメントで問題を起こす |
CPP-39925 | 代入演算子が明示的にデフォルトとして定義されている場合、JSF-081(OOP-34) および JSF-082(CODSTA-CPP-02) が違反を誤検出する |
CPP-39973 | CLLOCRIT がクラス本体の外で定義された関数内のコメントを無視する |
CPP-39975 | [C++test Desktop] データ ソースがあるテスト ケースが DTP で誤ってカウントされる |
CPP-40040 | メンバー変数の宣言に 'constexpr' [C++11] が含まれている場合、CODSTA-67 が違反を誤検出する |
CPP-40122 | [C++test Desktop] チーム共有ルールマップでマッピング エラーの可能性 |
CPP-40137 | [C++test Desktop] ルールマップの編集ダイアログで RuleWizard ルールの複製を可能にする |
CPP-40138 | [C++test Desktop] ルールマップの編集ダイアログで複数エントリの一括削除を可能にする |
CPP-40139 | [C++test Desktop] ルールマップの編集ダイアログで複製/マッピングされたルールの ID が既に使用されている場合のエラーメッセージを改善する |
CPP-40144 | [C++test Desktop] 抑制処理のパフォーマンス向上 |
FA-5764 | C++ コードの CFG の構築エラー |
FA-5623 | アロケーターの処理の不足/不適切 |
FA-5783 | BD-PB-MODSTR ルールのメッセージに '$tmp_.....' が含まれる場合があり、実行のたびに一致しない |
FA-5672 | ポインター算術がメンバー フィールドのアドレスに対して行われている場合、BD-PB-PTRARR が違反を検出しない |
FA-5760 | pthread_mutex_trylock (または同様の機能を持つ任意の関数) によって 2 つ目のロックが行われている場合、BD-TRS-DLOCK が違反をレポートしないよう変更 |
FA-5077 | BD-MISC-DC 違反未検出/重複 |
FA-4779 | Java グラフ要素に暗黙的なキャストの情報が含まれていない |
FA-4830 | String.Length プロパティのモデルがないために PB.ARRAY が違反を誤検出する |
FA-5836 | 事前解析が例外によって完了しない |
FA-5091 | ポインターと配列値の間の接続に関するシミュレーション ステートの情報不足 |
FA-5905 | BD-PB-OVERFWR 誤検出の可能性 - char[0] 型の最後のフィールドに対して誤って範囲外と判断する |
FA-5883 | インクリメンタル解析キャッシュの圧縮が機能しない |
XT-10181 | Value input for hours drops by one causes unable to borrow license. |
XT-34419 | プロジェクトごとの IDE からの指摘事項のインポートが機能しない |
XT-34610 | デフォルトの build.id がマニュアルの記述と異なる |
XT-34642 | パイプライン プロジェクトの一部として実行すると Parasoft Jenkins プラグインがスタックする |
XT-34944 | 後続のビルドで別のセッション タグが計算される |
XT-34960 | DTP が誤った違反の行をハイライトする |
XT-34977 | レポートに誤ったセッション タグが含まれる - noscBranchparameter |
XT-34985 | SVN サーバー ポートが適切にエンジンに渡されない |
XT-34995 | メタデータ プロセッサの問題の可能性 |