Loose-Info.com
Last Update 2021/11/01
TOP - 各種テスト - gcc - 警告関連のオプション - -Waddress

-Waddress
誤りが疑われるメモリアドレスの使用についての警告

テスト概要

オプション無し、-Waddress、-Wallの各オプションを使用した際の警告出力例

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。

使用ファイル


sample.c
#include <stdio.h> int sampFunc() { return 1; } int main(void) { /* 関数のアドレスを条件式に設定 */ if (sampFunc) { puts("関数のアドレス"); } /* 関数の戻り値を条件式に設定 */ if (sampFunc()) { puts("関数の戻り値"); } return 0; }

動作テスト

オプション無しでコンパイルを実行
$ gcc sample.c 警告無し $

-Wtautological-compareオプションを指定してコンパイルを実行
$ gcc -Waddress sample.c sample.c: In function ‘main’: sample.c:11:6: warning: the address of ‘sampFunc’ will always evaluate as ‘true’ [-Waddress] if (sampFunc) ^~~~~~~~ $ 「sampFunc」のアドレスは常に「true」である事を警告

-Wallオプションを指定してコンパイルを実行
$ gcc -Waddress sample.c sample.c: In function ‘main’: sample.c:11:6: warning: the address of ‘sampFunc’ will always evaluate as ‘true’ [-Waddress] if (sampFunc) ^~~~~~~~ $ -Wtautological-compareオプションは-Wallでも有効となる