问题: 对于某些C源文件,编译出错,显示Fatal error: Internal fault: 0x55af in XXX,其中行号都是最后一行,怀疑是最后没有加对于空行而导致的,但是加了空行也没解决问题.
办法:是arm的编译器的bug,去下载对应的那个848补丁升级即可.升级后的版本应该是
ARM C Compiler, ADS1.2 [Build 848]
具体解释,参考:
Build 848 fixes problems with access to nonstatic member functions in C++, functions with pointer-to-function parameters in C++, register stacking in Thumb code, ordering of arguments of shifted compares, float/double stores incorrectly being optimized away, a rare peephole optimization at -O2, boolean conversion in C++ code, incorrect division due to register allocation, evaluation of shift operations, corruption of SB in RWPI code, and stores to malloc'd pointers following memcpy. The C++ compiler now also allows multiple declaration specifications in conditions.
Build 844 added a new switch -Wc to suppress the #pragma warning C2813W.
Build 842 fixes some problems with code generation differences between platforms, Thumb branch/literal pool issues, code optimization, '#pragma arm section', "Internal faults" 0xd288 and 0x2696, and initializing nested structures in C++.
Build 837 fixed faults in the areas of generation of browse information, __packed bitfield initialization, code optimization, DWARF2 line tables, __packed typedefs, #pragma preprocessing, "Internal faults" 0x49de and 0x55af, and memory leaks when compiling with CodeWarrior.
本文解决了一个特定的ARM编译器错误:Internal fault:0x55af。该问题通常出现在C源文件的最后一行,并疑似由缺少空行引起。实际解决方案为升级编译器到ARMC Compiler, ADS1.2 [Build848]版本,该版本修复了多个已知问题。
4311

被折叠的 条评论
为什么被折叠?



