にゃははー

はへらー

GCC4.8はClangに近づく

GCC4.8からdiagnostic messageを改良する動きが出ています。
http://gcc.gnu.org/wiki/ClangDiagnosticsComparison


GCC4.6からdiagnostic messageの改良が始まっていましたが、これまでのは例えば

struct S
{
    ... snip ...
}

int i;

というコードで意味不明なエラーメッセージが出ていたのを、セミコロンが抜けているといった本質的なメッセージに修正するといったものでした。

$ cat hoge.c
struct S
{
}

int i;
$ gcc-4.4 hoge.c
hoge.c:5: error: two or more data types in declaration specifiers
$ gcc-4.6 hoge.c
hoge.c:5:1: error: expected ';', identifier or '(' before 'int'

これがGCC 4.8だとClangに近いメッセージになります。(既にtrunkに入っています)

$ gcc-4.8 hoge.c
hoge.c:5:1: error: expected ';', identifier or '(' before 'int'
 int i;
 ^

まだ指してる場所が変な感じですが、今後もっと改良されていくのではないでしょうか。