Last Update 2021/12/15
-trigraphs
トライグラフを使用可能とする
テスト概要
-trigraphsオプション無し、および-trigraphsオプションを使用してコンパイル
実行環境
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
#include <stdio.h>
int main(void)
??<
printf("??(sample??)\n");
return 0;
??>
動作テスト
-trigraphsオプションを使用せずにコンパイル
$ gcc sample.c
sample.c:4:1: warning: trigraph ??< ignored, use -trigraphs to enable [-Wtrigraphs]
??<
sample.c: In function ‘main’:
sample.c:4:1: error: expected declaration specifiers before ‘?’ token
??<
^
sample.c:5:10: warning: trigraph ??( ignored, use -trigraphs to enable [-Wtrigraphs]
printf("??(sample??)\n");
sample.c:5:19: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
sample.c:7:2: error: expected declaration specifiers before ‘return’
return 0;
^~~~~~
sample.c:8:1: warning: trigraph ??> ignored, use -trigraphs to enable [-Wtrigraphs]
??>
sample.c:8:1: error: expected declaration specifiers before ‘?’ token
??>
^
$ トライグラフが認識されずにエラー発生
-trigraphsオプションを使用してコンパイル
$ gcc -trigraphs sample.c
$ ./a.out
[sample]
$ トライグラフが置換されコンパイル完了