Last Update 2021/03/11
-fdiagnostics-parseable-fixits オプション
機械的に解析可能なフォーマットのfix-itヒントを出力
「fix-it:」で始まり、ファイル名、対象範囲、置換文字列で構成される文字列
「fix-it:」で始まり、ファイル名、対象範囲、置換文字列で構成される文字列
テスト概要
-fdiagnostics-parseable-fixits オプション指定で出力
実行環境
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-parseable-fixits オプション動作確認用ソースファイル */
#include <stdio.h>
int main(void)
{
iint n;
flot f;
prinnntf("Error!!!\n");
print(");
return 0;
}
動作テスト
-fdiagnostics-parseable-fixits オプション指定で出力
着色部は出力されたfix-itヒント
範囲指定が0バイトの場合は、文字列をその位置に挿入
空文字列が指定されている場合は、指定された範囲を削除
着色部は出力されたfix-itヒント
範囲指定が0バイトの場合は、文字列をその位置に挿入
空文字列が指定されている場合は、指定された範囲を削除
$ gcc -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:13:2: warning: implicit declaration of function ‘print’; did you mean ‘printf’? [-Wimplicit-function-declaration]
print(");
^~~~~
printf
fix-it:"main.c":{13:2-13:7}:"printf"
main.c:13:8: warning: missing terminating " character
print(");
^
main.c:13:8: error: missing terminating " character
print(");
^~~
main.c:15:2: error: expected expression before ‘return’
return 0;
^~~~~~
main.c:15:11: error: expected ‘;’ before ‘}’ token
return 0;
^
;
}
~
fix-it:"main.c":{15:11-15:11}:";"
$