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; ^
まだ指してる場所が変な感じですが、今後もっと改良されていくのではないでしょうか。