アナライザ・パーソナリティに関するFAQ
質問1. 特定の関数の呼び出し箇所を特定する「警告コール(-wc) 」オプションの使い方を教えてください。 全バージョン 戻る
回答1. 設定方法は次の通りです。

GUIから設定する場合:

[アナライザ パーソナリティ][警告コール] タブで [追加] ボタンを押して、
[指摘対象関数]=[指摘警告番号]という形式で設定します。
例:
func=3999

設定ファイルを直接編集する場合:
-wc"[指摘対象関数]=[指摘警告番号]"という形式で設定します。
例:
-wc"func=3999"

なお、C++言語では関数をオーバーロード/オーバーライドできるように なっているので、同名の関数を複数個定義することができます。
同名の関数のうち一つを特定する必要がある場合は、[指摘対象関数]を「シンボリック・タイプ・コード」を用いた形式で記述する必要があります。(「シンボリック・タイプ・コード」については、ユーザーズ・ガイドを ご参照ください)

例えば、次のようなコードを解析する場合を考えます。
void func(int);

namespace NS {
  void func(int);

 class CLS {
  public:
    void func(int);
  };
}

int main(void) {
  NS::CLS obj;

 func(1);
  NS::func(1);
  obj.func(1);  // ここに 3999 番の警告を出力する。
  return 0;
}
複数個宣言された func 関数のうち、NS 名前空間内の CLS クラス内で宣言されている func 関数が呼び出されている箇所だけに 3999 番の警告を出力する場合は、次のように設定します。
-wc"::NS::CLS::func(.,ni)=3999"

ただし、「シンボリック・タイプ・コード」を用いた形式で、[指摘対象関数]を記述する のは容易ではないので、次の手順に従ってQA·C++から該当形式の情報を抽出してください。
  1. 対象となる関数の呼び出し文を含む簡単なサンプルソースを作ります。
    (ここでは TEST.cpp とします)
  2. 作成した TEST.cpp をQA·C++で解析します。
  3. 解析が正常終了すると TEST.cpp に対応する TEST.cpp.met という名称のファイルがQA·C++の 出力ディレクトリに作成されます。
  4. TEST.cpp.met の中には、次のようなレコードが 出力されます。
    <R>C main ::test::TEST::func(.,ni) 17 -
    先頭が <R>C になっている行には、関数呼び出しに 関する情報が出力されています。(ユーザーズ・ガイド の「関係レコード」をご参照ください)
  5. <R>C レコードの2番目は、呼び出されている関数の 情報を表し、これが「警告コール(-wc)」オプション に設定するべき情報になります。

警告番号 3999 は「警告コール(-wc)」オプション用の汎用の警告番号になります。 独自のメッセージを出力したい場合は、ユーザーズ・ガイドの「ユーザ・メッセージ・ファイル」を参照して、新しいメッセージを定義してください。