This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/59891] New: ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59891

            Bug ID: 59891
           Summary: ICE on invalid code (with div-by-zero) at all
                    optimization levels on x86_64-linux-gnu
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu

The following code causes an ICE when compiled with the current gcc trunk and
4.8 at all the optimization levels on x86_64-linux-gnu in both 32-bit and
64-bit modes. 

The code causes gcc 4.7 to hang at all optimization levels. 

It is a regression from 4.6.x. 

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 4.9.0 20140120 (experimental) [trunk revision 206798] (GCC) 
$ 
$ gcc-trunk -O0 small.c
small.c: In function âmainâ:
small.c:6:28: warning: division by zero [-Wdiv-by-zero]
   return (0 ? a : 0) ? : 0 % 0;
                            ^
small.c:6:3: internal compiler error: in gimplify_expr, at gimplify.c:8157
   return (0 ? a : 0) ? : 0 % 0;
   ^
0x806fb8 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc-trunk/gcc/gimplify.c:8157
0x80a139 gimplify_modify_expr
    ../../gcc-trunk/gcc/gimplify.c:4493
0x80a139 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc-trunk/gcc/gimplify.c:7441
0x80ec18 gimplify_stmt(tree_node**, gimple_statement_base**)
    ../../gcc-trunk/gcc/gimplify.c:5334
0x810802 gimplify_and_add(tree_node*, gimple_statement_base**)
    ../../gcc-trunk/gcc/gimplify.c:384
0x811da0 gimplify_return_expr
    ../../gcc-trunk/gcc/gimplify.c:1234
0x808557 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc-trunk/gcc/gimplify.c:7688
0x80ec18 gimplify_stmt(tree_node**, gimple_statement_base**)
    ../../gcc-trunk/gcc/gimplify.c:5334
0x80fe13 gimplify_bind_expr
    ../../gcc-trunk/gcc/gimplify.c:1072
0x8082d0 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc-trunk/gcc/gimplify.c:7638
0x80ec18 gimplify_stmt(tree_node**, gimple_statement_base**)
    ../../gcc-trunk/gcc/gimplify.c:5334
0x80ed6a gimplify_body(tree_node*, bool)
    ../../gcc-trunk/gcc/gimplify.c:8548
0x80f3b1 gimplify_function_tree(tree_node*)
    ../../gcc-trunk/gcc/gimplify.c:8701
0x69ec97 analyze_function
    ../../gcc-trunk/gcc/cgraphunit.c:649
0x6a0724 analyze_functions
    ../../gcc-trunk/gcc/cgraphunit.c:1017
0x6a1660 finalize_compilation_unit()
    ../../gcc-trunk/gcc/cgraphunit.c:2310
0x55b802 c_write_global_declarations()
    ../../gcc-trunk/gcc/c/c-decl.c:10401
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.
$    


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


unsigned int a;

int 
main ()
{
  return (0 ? a : 0) ? : 0 % 0;
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]