[英]gcc consumes all memory when optimizing -O3
我試圖編譯以下函數,以查看gcc的功能:
#include <stdint.h>
#include <stddef.h>
typedef struct giga
{
uint64_t g[0x10000000];
} giga;
uint64_t addfst(giga const *gptr, size_t num)
{
uint64_t retval = 0;
for (size_t i = 0; i < num; i++)
{
retval += gptr[i].g[0];
}
return retval;
}
並發現gcc耗盡了我的記憶,將自己交換到了死地。
我發現在-O3
進行優化時會發生這種情況,而沒有嘗試剖析負責的確切標志。 在gcc.godbolt上測試該功能可以發現這是gcc特定的,但是會影響4.8和4.9版本。
這是真正的編譯器錯誤,還是我的功能壞了?
該錯誤位於gcc bugzilla https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65518上 。 它已被確認並明顯固定在行李箱中。 希望此修補程序最終能夠深入我的發行版。 感謝大家!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.