実現したいこと
ビルド時に 関数ポインタが未初期化のときは、何らかのワーニングを出す方法はないでしょうか?
前提
社内のコードのメンテナンスを行っているのですが、ハングが発生したため調べてみると、
関数ポインタの未初期化が原因でした。
以下にコードを簡略化して書かせていただいておりますが、
実際はメンバ関数はもっとたくさんあり、関数名の文字数も長短不揃いのため、
未定義の箇所はもっとありそうで、かつ、プロジェクト全体で同じような書き方をされているので、
目視で全部探すのは無理だと思い始めました。
コンパイラとしては普通に構造体を初期化してくれているだけなので、そもそも未定義にしているのが問題なのですが…
ビルドのときに何とかワーニングを出す方法はないか、アドバイスを頂きたく質問させて頂きました。
該当のソースコード
元のコードは巨大なので簡略化して書かせていただきました。
c
1struct 2{ 3 void ( * const pFuncA )( void ); 4 void ( * const pFuncB )( int b ); 5} 6static const Funcs[] = 7{ 8 { &FuncA1, &FuncB1 }, 9 { &FuncA2, &FuncB1 }, 10 { &FuncA3 }, <- 未定義…。 11};
補足情報(FW/ツールのバージョンなど)
IAR Workbench for ARM 7.80.2
