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

            Bug ID: 84811
           Summary: ICE on valid code at -O3 in 64-bit mode on
                    x86_64-linux-gnu: in smallest_mode_for_size, at
                    stor-layout.c:355
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

$ gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/home/su/software/tmp/gcc/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/home/su/software/tmp/gcc/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 8.0.1 20180310 (experimental) [trunk revision 258413] (GCC)
$
$ gcctk -O2 -c small.c
$ gcc-7.2.0 -O3 -c small.c
$
$ gcctk -O3 -c small.c
during RTL pass: dse1
small.c: In function ‘fn1’:
small.c:12:1: internal compiler error: in smallest_mode_for_size, at
stor-layout.c:355
 }
 ^
0xc95e8b smallest_mode_for_size(poly_int<1u, unsigned long>, mode_class)
        ../../gcc-source-trunk/gcc/stor-layout.c:355
0x146b92b smallest_int_mode_for_size
        ../../gcc-source-trunk/gcc/machmode.h:842
0x146b92b find_shift_sequence
        ../../gcc-source-trunk/gcc/dse.c:1701
0x146b92b get_stored_val
        ../../gcc-source-trunk/gcc/dse.c:1847
0x146e4b3 record_store
        ../../gcc-source-trunk/gcc/dse.c:1557
0x146f3be scan_insn
        ../../gcc-source-trunk/gcc/dse.c:2545
0x146f3be dse_step1
        ../../gcc-source-trunk/gcc/dse.c:2657
0x146f3be rest_of_handle_dse
        ../../gcc-source-trunk/gcc/dse.c:3574
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$


-----------------------------------------


int a;
long b[1][9];

void fn1 ()
{ 
  while (a)
    { 
      for (a = 0; a < 9; a++)
        b[2180000000000000000][a] = 1;
      break;
    }
}

Reply via email to