今天在ubuntu 下编译 busybox 的时候,出现了这个警告: warning: dereferencing type-punned pointer will break strict-aliasing rules。
用有道的翻译结果是:警告:取消对类型指针的引用将打破严格的别名规则。
在高优化级别下,不同类型指针之间的强制类型转换可能会触发这样的警告:
在高优化级别下,gcc假定不同类型指针不会指向同一片内存,以加强优化,从而可能导致编译出不符合原意的代码。
使用-fno-strict-aliasing,关闭在此类代码上的优化。