エラーメッセージを出力して終了するdie
関数があります。
void die(const char* msg) {
fprintf(stderr, "Error: %s\n", msg);
exit(1);
}
Parasoft C++testを使用してコードを静的に分析しますが、それがdie
戻り値のない関数であることを認識していません。したがって、次のようなコードが表示された場合:
void foo(Bar* bar) {
if(!bar) {
die("bar is NULL");
}
Bar bar2 = *bar;
}
*bar
NULL であるとその行が実行されなくなりますが、null ポインターを逆参照している可能性があることを警告しbar
ます。die
Parasoft が認識できる方法で非リターンとしてマークする方法はありますか?
編集:GCCとVS 2003の両方で機能するものが必要ですが#ifdef
、誰かがVSでのみ機能するソリューションを持っている場合、私は物事を回避する方法を超えていません