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

            Bug ID: 78548
           Summary: ice on valid C code on x86_64-linux-gnu at -O2 and -O3
                    in 64-bit mode with -Wall (*** Error in
                    `/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/
                    7.0.0/cc1': double free or corruption (fasttop):
                    0x0000000003c15810 ***)
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chengniansun at gmail dot com
  Target Milestone: ---

The following program crashes gcc in the 64-bit mode, but causes gcc to hang in
the 32-bit mode. 

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.0 20161127 (experimental) [trunk revision 242892] (GCC) 
$ 
$ gcc-trunk -Wall -w -O3 -m64 small.c
*** Error in `/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/cc1':
double free or corruption (fasttop): 0x0000000003c15810 ***
small.c: In function ‘main’:
small.c:6:5: internal compiler error: Aborted
 int main (  ) {
     ^~~~
0xbe8aff crash_signal
        ../../gcc-source-trunk/gcc/toplev.c:333
0xe0ba36 xcallocator<gimple*>::data_free(gimple**)
        ../../gcc-source-trunk/gcc/hash-table.h:273
0xe0ba36 ~hash_table
        ../../gcc-source-trunk/gcc/hash-table.h:627
0xe0ba36 ~hash_set
        ../../gcc-source-trunk/gcc/hash-set.h:25
0xe0ba36 find_def_preds
        ../../gcc-source-trunk/gcc/tree-ssa-uninit.c:775
0xe0ba36 is_use_properly_guarded
        ../../gcc-source-trunk/gcc/tree-ssa-uninit.c:2375
0xe0c17e find_uninit_use
        ../../gcc-source-trunk/gcc/tree-ssa-uninit.c:2434
0xe0c17e warn_uninitialized_phi
        ../../gcc-source-trunk/gcc/tree-ssa-uninit.c:2504
0xe0c17e execute
        ../../gcc-source-trunk/gcc/tree-ssa-uninit.c:2612
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ 
$ cat small.c
char a;
int b;
unsigned c, d;
short e;
int main_f;
int main (  ) {
L0:
    if ( e )     goto L1;
    b = c & d || a;
    if ( !c )     printf ( "", ( long long ) main_f );
    if ( d || !c )     {
        printf ( "%llu\n", ( long long ) main );
        goto L2;
    }
    unsigned g = b;
L1:
    b = g;
L2:
    if ( b )     goto L0;
  return 0;
}

Reply via email to