Loose-Info.com
Last Update 2021/09/13
TOP - 各種テスト - gcc - 警告関連のオプション - -Wsequence-point

-Wsequence-point
CおよびC++標準のシーケンスポイント規則に違反しているため、動作結果が未定義となる可能性があるコードに関する警告

テスト概要

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

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


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

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

使用ファイル


sample.c
#include <stdio.h> int main(void) { int n = 0; printf("%d\n", (n++ - n++)); return 0; }

動作テスト

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

-Wsequence-pointオプション使用してコンパイルを実行
$ gcc -Wsequence-point sample.c sample.c: In function ‘main’: sample.c:7:19: warning: operation on ‘n’ may be undefined [-Wsequence-point] printf("%d\n", (n++ - n++)); ~^~ $ 「n」の演算が未定義となる事に関する警告

-Wallオプション使用してコンパイルを実行
$ gcc -Wall sample.c sample.c: In function ‘main’: sample.c:7:19: warning: operation on ‘n’ may be undefined [-Wsequence-point] printf("%d\n", (n++ - n++)); ~^~ $ -Wallに-Wsequence-pointが含まれるため同一の出力結果