コンテンツ
クロスモジュール解析(CMA) やマルチスレッド解析(MTA)によって検出される警告メッセージには、問題の発生箇所を1箇所に特定することができないものがあります。
これを multi-homed メッセージと呼びます。
・CMAによる警告メッセージの一覧は『クロスモジュール解析 (CMA) のメッセージ』をご覧ください
・MTAに警告メッセージの一覧は『マルチスレッド解析(MTA)のメッセージ』をご覧ください
※「multi-homed」の列に ○ が付いているメッセージがmulti-homed メッセージです
例えば、CMAによるメッセージ 1510 「外部結合をもつ 'name' が、複数個宣言されていますが互換性がありません。」は multi-homed メッセージです。
外部結合をもつ 'name' が宣言されている箇所が複数箇所あることが問題であり、問題の発生箇所を1箇所に特定することができないメッセージです。
multi-homed メッセージは、メッセージブラウザ上では、『サブメッセージ』を伴って出力され、サブメッセージが問題の発生原因の候補を示します。
メッセージブラウザ上では、検出された multi-homed メッセージの数がメッセージ数としてアクティブや合計にカウントされます。
例えば、メッセージ1510が1つ出力された場合、メッセージ数は1になります。
・QAC 8.2.2 / QAC++ 3.2.2 (PRQA Framework 1.0.5) 以降
multi-homed メッセージは CMA ノード配下に出力されます。
・QAC 8.1.2 / QAC++ 3.1.0 以前
multi-homed メッセージは CMA 結果タブのクロスモジュール解析に出力されます。
注意
警告メッセージを csv、テキスト、html に出力する場合、multi-homed メッセージはサブメッセージが示す箇所に出力されます。
上の例の場合、1つの multi-homed メッセージ1510 に対して、サブメッセージ1594が3箇所出力されています。
この場合に警告メッセージを csv 等 に出力すると、サブメッセージが示す alloca.c の 139 行目、getopt.c の 47行目、getopt.c の 191 行目の3箇所にメッセージ1510が出力されます。
つまり、メッセージブラウザでは1件とカウントされている multi-homed メッセージが csv 等 に出力すると複数回出力されることになります。
従って、multi-homed メッセージの出力数は、メッセージブラウザと csv 等に出力した場合で異なります。