編譯文件的時候報錯如下:
報錯文件名:行號:列號 internal compiler error: in arm_dbx_register_number, at config/arm/arm.c:23648
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://support.codesourcery.com/GNUToolchain/> for instructions.
個人分析:
報錯的函數FunctionA,使用了arm的neon的相關數據結構,並調用了一個帶有for循環的static inline函數FunctionB(該函數也是用l了neon的數據結構)。FunctionB之所以聲明爲static,是因爲要控制函數的使用(僅用於本文件);之所以聲明爲inline,是因爲,爲了提高執行效率,以空間換時間。
之前FunctionB定義爲static inline,編譯都沒問題。但是今天突然編譯又不通過了。。。。
懷疑還是inline的緣故,inline會在函數FunctionB被調用的地方展開函數FunctionB,但FunctionB中又包含了neon的相關結構體,估計展開後,編譯出了問題(或許展開過多,內存不足有關係)。inline符號去掉後,編譯OK。