スタティックの検証は、次のようなプログラムユニット間のオブジェクト宣言の不一致を検出します。
次に、プロシージャー間の解析例を示します。
例 1: データ型の誤り
config1.c ファイルには、次のコードが含まれています。
31 int extraSpace , pad , height , width , rows , bot , top , trow ;
dimbox.c ファイルには、次のコードが含まれています。
13 char **rows ;
スタティックの検証機能で次のメッセージが発行されます。
dimbox.c(13): error #12090: [SV] inconsistent declaration of variable "rows" (wrong type).See (file:config1.c line:31)
例 2: 引数の数の誤り
controlf.c ファイルには、次の関数宣言が含まれています。
controlf()
uloop2.c ファイルには、次のコードが含まれています。
65 fds = controlf( 1 ) ;
スタティックの検証機能で次のメッセージが発行されます。
uloop2.c(65): error #12020: [SV] number of actual arguments (1) in call of "controlf" doesn't match the number of formal arguments (0); "controlf" is defined at (file:controlf.c line:4)
例 3: プロシージャー引数のデータ型の誤り
lapak.f90 ファイルには、次のコードが含まれています。
8759 SUBROUTINE ZGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO )
...
8771 INTEGER IPIV( * )
bifgel.f90 ファイルには、次のコードが含まれています。
778 Subroutine CMAN2(W, N, NW, Omega, H20, H11, W20, W11, WK, ier)
779 Implicit Real*8 (A-H,O-Z)
...
782 Dimension W(*), H11(N), W11(N), WK(N) ...
840 Call Zgetrs ('N', N, 1, W(Lac), N, WK, W20, N, info)
スタティックの検証機能で次のメッセージが発行されます。
bifgel.f90(840): error #12040: [SV] actual argument 6 in call of "ZGETRS" doesn't conform to formal argument.See (file: lapak.f90 line:8759)