Klocwork により解析されるコンパイラ属性
次の表は、Klocwork 指摘解析によりサポートされるコンパイラ属性のリストを示します。
GNU 属性 | 説明 |
---|---|
noreturn | abort や 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) | バイト数単位で変数または構造フィールドの最低配置を指定します。 |
packed | aligned 属性で大きな値を指定しない限り、変数または構造フィールドに可能な限り最小の配置 (変数には 1 バイト、フィールドには 1 ビット) を使用することを指定します。 |
MS 属性 | 説明 |
noreturn | GNU の noreturn 属性の説明を参照してください |