EN JP CN

サポートされていない C/C++ コンパイラの追加

サポートされていない C/C++ コンパイラの追加

サポートされていない C/C++ コンパイラの追加

サポートされていない C/C++ コンパイラの追加
kwinject は多くのC/C++ コンパイラを完全にサポートしています (サポートされるコンパイラのリストを参照)。ご使用のコンパイラの正確な名前が表にない場合で、サポートされるコンパイラタイプに含まれていることがわかっている場合には、使用するコンパイラの名前を kwinject が認識するコンパイラタイプにバインドする必要があります。--progオプションを設定して kwinject を実行します。たとえば、使用するコンパイラの名前が gcc4 で、GNU の一種であることがわかっている場合、次のコマンドを実行します。
kwinject --prog gcc4=gnu make 
この変更を固定する方法の詳細は、認識されるコンパイラタイプへのコンパイラ名のバインドを参照してください。

それ以外では、Klocwork 9.2 では、使用するコンパイラがサポートされない場合に、自分でコンパイラサポートを設定することは推奨されません。代わりに、当社では Python スクリプト (*_filter.py) を使用して、ユーザーに必要とされる C/C++ コンパイラ向けにこの設定を提供しています。これらの Python スクリプトは、編集を意図したものではないことにご注意ください。

Klocwork 9.2 以降では、kwinject からの追跡ファイルとともに、コンパイラ名と正確なバージョンを添付して、Klocwork サポートにチケットを送信してください。当社では、短期間でコンパイラ設定を提供いたします。コンパイラに異なる種類の C/C++ が使用され、パースエラーを避けるために Klocwork のコンパイラを修正する必要がある場合は、サポートの提供に時間がかかることがあります。

Klocwork により解析されるコンパイラ属性

次の表は、Klocwork 指摘解析によりサポートされるコンパイラ属性のリストを示します。

GNU 属性 説明
noreturnabort や exit など、戻り値のないいくつかの標準ライブラリ関数。GCC はこれを自動的に認識します。一部のプログラムは、戻り値のない独自の関数を定義しています。これらの関数を noreturn と宣言して、コンパイラに指示することができます。
nonnull(arg-index) 一部の関数パラメーターを非 null ポインターとする必要があることを指定します。
format(archetype, string-index, first-to-check) 関数が書式文字列に対する型チェックが必要になる printf、scanf、strftime、または strfmon のスタイル引数を使用することを示します。archetype パラメーターは書式文字列の解釈方法を決定するもので、printf、scanf、strftime、または strfmon とする必要があります。string-index パラメーターはどの引数が書式文字列引数かを指定し (1 から開始)、first-to-check は書式文字列に対してチェックする最初の引数の数です。チェックする引数がない関数の場合 (vprintf など)、3 番目のパラメーターに 0 を指定します。この場合は、コンパイラにより書式文字列の一貫性のみがチェックされます。strftime フォーマットには、3 番目のパラメーターを 0 にする必要があります。非 static の C++ メソッドは暗黙的にこの引数を使用するため、string-index および first-to-check の値を指定する場合に、このようなメソッドの引数を 1 からではなく、2 からカウントする必要があります。
format_arg (string-index) 関数が printf、scanf、strftime、または strfmon のスタイル関数の書式文字列を使用して変更し (別の言語に変換するなど)、その結果を printf、scanf、strftime、または strfmon のスタイル関数に渡せることを指定します (書式関数の残りの引数は変更されていない文字列と同じ)。
エイリアス ("target") 宣言を別の記号のエイリアスとして発行します。 このエイリアスは指定しておく必要があります。
配置済み (alignment) バイト数単位で変数または構造フィールドの最低配置を指定します。
packedaligned 属性で大きな値を指定しない限り、変数または構造フィールドに可能な限り最小の配置 (変数には 1 バイト、フィールドには 1 ビット) を使用することを指定します。
MS 属性 説明
noreturnGNU の noreturn 属性の説明を参照してください