このリリースでは、特にコード解析機能の拡張およびサポート対象環境の拡充に重点が置かれました。

サポート対象コンパイラの拡充

  • Green Hills Software Compiler for PPC 2017.1.x のサポート

サポート対象プラットフォームの拡充

  • Windows Server 2016 のサポート

サポート対象 IDE の拡充

  • Eclipse 4.7 のサポート

フロー解析の拡張

スコープ外の関数およびファイルを解析対象とするようフロー解析を設定できるようになりました (詳細は「フロー解析」を参照)。

新規コード解析ルール

ルール 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 FighterJSF-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 CMISRA-030
MISRA 2004MISRA2004-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 2008MISRA2008-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 2012MISRA2012-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-40199GHS PPC 2017.1 コンパイラのサポート
CPP-39947Windows Server 2016 のサポート
CPP-37054Visual 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-36964SECURITY-14 が scanf() のバリアントをチェックしない
CPP-38107CODSTA-10 が "auto" 型をサポートしていない
CPP-38218COMMENT-05 がマクロで定義された変数に対して違反をレポートしない場合がある
CPP-38234MISRA2012-RULE-12_2 (MISRA2004-12_8) は if と同様にループの条件をチェックする必要がある 
CPP-38339printf() に関数パラメーターが渡されている場合、SECURITY-05 が違反をレポートしないことがある
CPP-38408[C++test Desktop] 特定の違反で [テスト コンフィギュレーションの表示] アクションを実行すると、適切なコンフィギュレーションが表示されない
CPP-38588PB-25 が std::initializer_list に対して誤った違反をレポートする
CPP-38592MISRA2004-10_1_g が関数引数とプレーン char 型の間の暗黙的な変換をレポートしない場合がある
CPP-39416CODSTA-11 がサンプル コードの違反を検出しない
CPP-39489RuleWizard 関数キャスト関して 'cast' ノードのプロパティ 'Kind' が正しく機能しない
CPP-39494malloc() で割り当てられたメモリが複数レベルの間接参照でポインターに代入されている場合、MRM-45 が違反を誤検出する
CPP-39534d3dx10math.h(449) に対するコンパイル エラー C2059
CPP-39542[C++test Desktop] テスト ケース エディターの ctrl+space アシスタントで値の前にスペースが挿入されることがある
CPP-39548C++test ランタイムで STRINGIZE マクロをリネーム
CPP-39581MISRA2008-2_10_4 グローバル ルールの作成
CPP-39741[C++test Desktop] クエスチョン マークの SCC インストゥルメンテーションがコンパイル エラーの原因になる可能性がある
CPP-39742[C++test Desktop] MemoryAnalysis および Stubs 機能がすべてのファイルに対して xharness を強制する (すべてのインストゥルメンテーション機能をオフにした場合も)
CPP-39756[C++test Desktop] テスト コンフィギュレーション UI で一部のフロー解析詳細設定を変更できない
PP-39758qcc: '-Wp' オプションによる c99 モードの有効化をサポート
CPP-39804Parse error: type name is not allowed
CPP-39834NAMING-05 が範囲ベースの for ループに対して違反を誤検出する
CPP-39835メンバーの初期化が別の翻訳単位で行われている場合、INIT-06 が違反を誤検出する
CPP-39838FORMAT-26 が Rvalue 参照に対して違反を誤検出する
CPP-39839NAMING-05 が範囲ベースの for ループに対して違反を誤検出する
CPP-39894[Docs] UNIX インストール スクリプトのエラー
CPP-39912[C++test Desktop] 静的解析で SVN サーバー ポートが無視される
CPP-39919MISRA2012-DIR-4_4 が複数行コメントで問題を起こす
CPP-39925代入演算子が明示的にデフォルトとして定義されている場合、JSF-081(OOP-34) および JSF-082(CODSTA-CPP-02) が違反を誤検出する
CPP-39973CLLOCRIT がクラス本体の外で定義された関数内のコメントを無視する
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-5764C++ コードの CFG の構築エラー
FA-5623アロケーターの処理の不足/不適切
FA-5783BD-PB-MODSTR ルールのメッセージに '$tmp_.....' が含まれる場合があり、実行のたびに一致しない
FA-5672ポインター算術がメンバー フィールドのアドレスに対して行われている場合、BD-PB-PTRARR が違反を検出しない
FA-5760pthread_mutex_trylock (または同様の機能を持つ任意の関数) によって 2 つ目のロックが行われている場合、BD-TRS-DLOCK が違反をレポートしないよう変更
FA-5077BD-MISC-DC 違反未検出/重複
FA-4779Java グラフ要素に暗黙的なキャストの情報が含まれていない
FA-4830String.Length プロパティのモデルがないために PB.ARRAY が違反を誤検出する
FA-5836事前解析が例外によって完了しない
FA-5091ポインターと配列値の間の接続に関するシミュレーション ステートの情報不足
FA-5905BD-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-34960DTP が誤った違反の行をハイライトする
XT-34977レポートに誤ったセッション タグが含まれる - noscBranchparameter
XT-34985SVN サーバー ポートが適切にエンジンに渡されない
XT-34995メタデータ プロセッサの問題の可能性
  • No labels