このリリースでは、特にコード解析機能の拡張とサポート対象環境の拡張が行われました。

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

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

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

  • Windows Server 2016 のサポート

フロー解析の拡張

フロー解析でスコープ外の関数およびファイルを解析するよう設定できます (詳細については「フロー解析の設定」を参照してください)。

新規コード解析ルール

ルール 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-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-31853MISRA2008-0_1_10_b : 「外部リンケージを持つ定義されたすべての関数は少なくとも 1 度は使用されなければならない」 の追加
CPP-36719引数に符号なし型の単項マイナス (-) が含まれている場合 PB-47 が違反をレポートしない
CPP-36964SECURITY-14 が scanf() のバリアントをチェックしない
CPP-38107CODSTA-10 が "auto" 型をサポートしていない
CPP-38218 COMMENT-05 がマクロ内で定義された変数に対して違反をレポートしない場合がある
CPP-38234MISRA2012-RULE-12_2 (MISRA2004-12_8) はif と同様の方法で for ループの条件をチェックするべきである
CPP-38339printf() に関数パラメーターを渡している場合 SECURITY-05 が違反をレポートしないことがある
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-39548C++test ランタイムで STRINGIZE マクロの名前を変更
CPP-39581MISRA2008-2_10_4 をグローバル ルールにする
CPP-39758qcc: '-Wp' オプションによる c99 モードの有効化をサポートする
CPP-39804パース エラー: 型名が許可されていない
CPP-39834NAMING-05 が範囲ベースの for ループに対して違反を誤検出する
CPP-39835別の翻訳単位でメンバーの初期化が行われている場合、INIT-06 が違反を誤検出する
CPP-39838FORMAT-26 が Rvalue 参照に対して違反を誤検出する
CPP-39839NAMING-05 が範囲ベースの for ループに対して違反を誤検出する
CPP-39892[Docs] C++test Engine カスタム ルール ディレクトリのプロパティが誤っている
CPP-39919MISRA2012-DIR-4_4 が複数行のコメントで問題を起こす
CPP-39925絵移入演算子が明示的にデフォルトとして定義されている場合、JSF-081(OOP-34) および JSF-082(CODSTA-CPP-02) が違反を誤検出する
CPP-39973CLLOCRIT がクラスの本体の外で定義された関数のコメントを無視する
CPP-40040メンバー変数の宣言に 'constexpr' [c++11] が含まれている場合、CODSTA-67 が違反を誤検出する
CPP-40086[C++test Engine] ランタイムは include ディレクティブの正しい構文を使用する必要がある
FA-5764C++ コードの CFG ビルド エラー
FA-5623no throw アロケーターの処理が不足/適切ではない
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-4830PB.ARRAY に String.Length プロパティのモデルが不足していることにより違反の誤検出の可能性がある
FA-5836事前解析が例外で失敗する
FA-5091シミュレーション ステートにポインターと配列値の間の接続に関する情報がない
FA-5905BD-PB-OVERFWR が違反を誤検出する可能性がある - char[0] 型の最後の構造体フィールドの境界外を誤って判断する
FA-5883インクリメンタル解析のキャッシュ圧縮が動作しない
XT-10181 Value input for hours drops by one causes unable toborrowlicense. 
XT-34419 IDE からのプロジェクトごとの指摘事項のインポートが動作しない 
XT-34610デフォルトの build.id がドキュメントに記載されているものと異なる
XT-34642 パイプライン プロジェクトの一部として実行したとき、Parasoft Jenkins プラグインがスタックする
XT-34944後続のビルドで異なるセッション タグを計算する
XT-34960DTP が誤った行を違反としてハイライトする
XT-34977レポートに誤ったセッション タグが含まれる - scBranch パラメーターがない
XT-34985SVN サーバー ポートが適切にエンジンに渡されない
XT-34995メタデータ プロセッサの問題の可能性

  • No labels