簡體   English   中英

優化-O3時,gcc會消耗所有內存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM