Last Update 2021/09/14
-Wreturn-type
戻り値の型がvoidではない関数で、return文が無い場合などに警告を出力
テスト概要
オプション無し、-Wreturn-type、-Wallの各オプションを使用した際の警告出力例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
sample.c
int sampFunc(void)
{
/* return文が存在しない */
}
int main(void)
{
sampFunc();
return 0;
}
動作テスト
オプション無しでコンパイルを実行
$ gcc sample.c 警告無し
$
-Wreturn-typeオプション使用してコンパイルを実行
$ gcc -Wreturn-type sample.c
sample.c: In function ‘sampFunc’:
sample.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
$ コントロールが非void関数の終端に到達する事に対する警告
-Wallオプション使用してコンパイルを実行
$ gcc -Wall sample.c
sample.c: In function ‘sampFunc’:
sample.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
$ -Wallに-Wreturn-typeが含まれるため関連する警告を出力