关于C编译器,主要存在两个BUG,都和优化有关。
1、__builtin_expect
这个本来是个好东西,可惜有时它会引起编译器的崩溃,而且其提示让人不知所云!
2、inline
这个也是个好东西,但当内联超过多层的时候(不确定是否这个原因),也会引起编译器的崩溃!就像这样的:
..\..\mm\filemap.c
At end of source: : internal error: Uncaught exception Assertion failed raised
at ../../../bril/optimiser/dominators.c:910 (in pass
cleanup_scalar_stores_nonopt during compilation of
_find_or_create_page). Please submit a bug report with this message,
the command line used, type of machine and the output of the
compiler when you add -ED -v to the command line. Please also send
us the pre-processed file that is generated by the -ED option (the
file generated is named .i)
1 catastrophic error detected in the compilation of "..\..\mm\filemap.c".
Compilation aborted.
cc3089: fatal error: Compilation failed