Last Update 2021/03/12
-fdiagnostics-generate-patch オプション
fix-itのヒントをdiff形式で標準エラーに出力
テスト概要
-fdiagnostics-generate-patch オプション指定で出力
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
main.c
/* -fdiagnostics-generate-patch オプション動作確認用ソースファイル */
#include <stdio.h>
int main(void)
{
iint n;
flot f;
prinnntf("Error!!!\n");
return 0;
}
動作テスト
-fdiagnostics-generate-patch オプション指定で出力
fix-itヒント出力のため、-fdiagnostics-parseable-fixitsを指定
着色部は出力されたdiff形式テキスト
fix-itヒント出力のため、-fdiagnostics-parseable-fixitsを指定
着色部は出力されたdiff形式テキスト
$ gcc -fdiagnostics-generate-patch -fdiagnostics-parseable-fixits main.c
main.c: In function ‘main’:
main.c:7:2: error: unknown type name ‘iint’; did you mean ‘int’?
iint n;
^~~~
int
fix-it:"main.c":{7:2-7:6}:"int"
main.c:9:2: error: unknown type name ‘flot’; did you mean ‘float’?
flot f;
^~~~
float
fix-it:"main.c":{9:2-9:6}:"float"
main.c:11:2: warning: implicit declaration of function ‘prinnntf’; did you mean ‘printf’? [-Wimplicit-function-declaration]
prinnntf("Error!!!\n");
^~~~~~~~
printf
fix-it:"main.c":{11:2-11:10}:"printf"
--- main.c
+++ main.c
@@ -4,11 +4,11 @@
int main(void)
{
- iint n;
+ int n;
- flot f;
+ float f;
- prinnntf("Error!!!\n");
+ printf("Error!!!\n");
return 0;
}
$