STRONG.TYPE.ASSIGN.INIT
初期化時の 2 つの別の強い型の割り当て
チェッカーの STRONG.TYPE ファミリーは、プログラマーが行う強い型指定 (型が定義された抽象型) が違反または無視され、基礎となる ANSI 型セマンティックスが優先される状況を検出します。
STRONG.TYPE.ASSIGN.INIT チェッカーは、初期化時の 2 つの別の強い型の割り当てのあるインスタンスを検出します。
脆弱性とリスク
ANSI 規格対応のコンパイラは、表面の (プログラマーが定義する) 型ではなく、基底型をチェックするだけであるため、このような指摘に関する警告を報告しません。この結果、論理エラーが発生する可能性があります。
脆弱コード例
コピー
                                                    
                                                
                                                 typedef int Weight;
 typedef int Speed;
 
 int main() {
   Speed s = 0.1;
   Weight w = s; 
   return 0;
 }Klocwork は、強い型指定が初期化に違反があることを示す 6 行目にフラグを立てます。