Loose-Info.com
Last Update 2021/03/11
TOP - 各種テスト - gcc - -fdiagnostics-parseable-fixits オプション

-fdiagnostics-parseable-fixits オプション
機械的に解析可能なフォーマットのfix-itヒントを出力
「fix-it:」で始まり、ファイル名、対象範囲、置換文字列で構成される文字列

テスト概要

-fdiagnostics-parseable-fixits オプション指定で出力

実行環境

GCC-8.2.0
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バイトの場合は、文字列をその位置に挿入
空文字列が指定されている場合は、指定された範囲を削除
$ 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}:";" $