今天在ubuntu 下編譯 busybox 的時候,出現了這個警告: warning: dereferencing type-punned pointer will break strict-aliasing rules。
用有道的翻譯結果是:警告:取消對類型指針的引用將打破嚴格的別名規則。
在高優化級別下,不同類型指針之間的強制類型轉換可能會觸發這樣的警告:
在高優化級別下,gcc假定不同類型指針不會指向同一片內存,以加強優化,從而可能導致編譯出不符合原意的代碼。
使用-fno-strict-aliasing,關閉在此類代碼上的優化。