https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111104

            Bug ID: 111104
           Summary: Fatal error: can't fill 256 bytes in section .rodata
           Product: gcc
           Version: 12.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: adavanian at nvidia dot com
  Target Milestone: ---

Created attachment 55777
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55777&action=edit
The preprocessed file that triggers the bug

Compiling the following file results in a fatal error:

$gcc-12 -v

Using built-in specs.
COLLECT_GCC=gcc-12
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: "..."
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.3.0 (Ubuntu 12.3.0-1ubuntu1~22.04)

$cat test.cpp

struct A {
  int i;
  constexpr A() : i(0) {}
};
struct B {
  A a[1125488619006459660];
};
extern const B b{};

$gcc-12 test.cpp -o test.bin

/tmp/cc4H9Jsi.s: Assembler messages:
/tmp/cc4H9Jsi.s: Fatal error: can't fill 256 bytes in section .rodata of
/tmp/cc9wAeg1.o: 'file truncated'
/tmp/cc4H9Jsi.s: Fatal error: /tmp/cc9wAeg1.o: file truncated

Additional note: this test case is very similar to
testsuite\g++.dg\cpp0x\constexpr-array.C.

Reply via email to