该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
呵呵,错误信息不是想改善就能改善的,gcc想要做到clang那个程度还得几个版本。
cat main.c
#include
struct test
{
int a;
int b;
}
int main()
{
test x;
return x.a;
}
========
gcc-4.8 main.c
main.c:9:1: 错误:expected ‘;’, identifier or ‘(’ before ‘int’
int main()
^
main.c: 在函数‘main’中:
main.c:11:5: 错误:未知的类型名‘test’
test x;
^
main.c:12:13: 错误:在非结构或联合中请求成员‘a’
return x.a;
^
=======
gcc main.c
main.c:9:1: 错误:expected ‘;’, identifier or ‘(’ before ‘int’
main.c: 在函数‘main’中:
main.c:11:5: 错误:未知的类型名‘test’
main.c:12:13: 错误:在非结构或联合中请求成员‘a’
=======
clang main.c
main.c:7:2: error: expected ';' after struct
}
^
;
main.c:11:5: error: must use 'struct' tag to refer to type 'test'
test x;
^
struct
2 errors generated.
========
看的出来,gcc 4.8相对于4.6.3的改进在于错误信息的形式采用了clang的方式,但内容没变。
4.8的版本是20120610(目前最新,3天前发布的)。
另外,帖子里显示不出来,clang的错误信息是有着色的。