https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77377
Bug ID: 77377 Summary: [7 Regression] c-c++-common/pr59037.c ICEs with -fpic -msse on i686 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ubizjak at gmail dot com Target Milestone: --- Recent 7.0 regression: ~/gcc-build/gcc/cc1 -O3 -fpic -m32 -msse -quiet pr59037.c pr59037.c: In function ‘main’: pr59037.c:12:1: internal compiler error: Segmentation fault } ^ 0xb1f25f crash_signal ../../git/gcc/gcc/toplev.c:335 0x7f2c38 tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) ../../git/gcc/gcc/tree.h:3148 0x7f2c38 make_tree(tree_node*, rtx_def*) ../../git/gcc/gcc/expmed.c:5085 0x7f2d26 make_tree(tree_node*, rtx_def*) ../../git/gcc/gcc/expmed.c:5111 0xe1ef70 force_const_mem(machine_mode, rtx_def*) ../../git/gcc/gcc/varasm.c:3722 0x96cb86 setup_reg_equiv ../../git/gcc/gcc/ira.c:3933 0x96cb86 ira ../../git/gcc/gcc/ira.c:5196 0x96cb86 execute ../../git/gcc/gcc/ira.c:5526 Please submit a full bug report, gdb session: Program received signal SIGSEGV, Segmentation fault. make_tree (type=type@entry=0x0, x=0x2aaaae7b0480) at ../../git/gcc/gcc/expmed.c:5085 5085 t = wide_int_to_tree (type, std::make_pair (x, TYPE_MODE (type))); (gdb) bt #0 make_tree (type=type@entry=0x0, x=0x2aaaae7b0480) at ../../git/gcc/gcc/expmed.c:5085 #1 0x00000000007f2d27 in make_tree (type=0x2aaaae7ac7e0, x=0x2aaaae8b0890) at ../../git/gcc/gcc/expmed.c:5111 #2 0x0000000000e1ef71 in force_const_mem (mode=SImode, x=0x2aaaae8b0890) at ../../git/gcc/gcc/varasm.c:3722 #3 0x000000000096cb87 in setup_reg_equiv () at ../../git/gcc/gcc/ira.c:3933 #4 ira (f=<optimized out>) at ../../git/gcc/gcc/ira.c:5196 #5 (anonymous namespace)::pass_ira::execute (this=<optimized out>) at ../../git/gcc/gcc/ira.c:5526 #6 0x0000000000a509fe in execute_one_pass (pass=pass@entry=0x20d9db0) at ../../git/gcc/gcc/passes.c:2340 #7 0x0000000000a50ff8 in execute_pass_list_1 (pass=0x20d9db0) at ../../git/gcc/gcc/passes.c:2429 #8 0x0000000000a5100a in execute_pass_list_1 (pass=0x20d8d90) at ../../git/gcc/gcc/passes.c:2430 #9 0x0000000000a51055 in execute_pass_list (fn=<optimized out>, pass=<optimized out>) at ../../git/gcc/gcc/passes.c:2440 #10 0x0000000000736e54 in cgraph_node::expand (this=0x2aaaae8c9000) at ../../git/gcc/gcc/cgraphunit.c:1985 #11 0x00000000007387f7 in expand_all_functions () at ../../git/gcc/gcc/cgraphunit.c:2121 #12 symbol_table::compile (this=0x2aaaae7ac0a8) at ../../git/gcc/gcc/cgraphunit.c:2478 #13 0x000000000073aaa8 in compile (this=0x2aaaae7ac0a8) at ../../git/gcc/gcc/cgraphunit.c:2571 #14 symbol_table::finalize_compilation_unit (this=0x2aaaae7ac0a8) at ../../git/gcc/gcc/cgraphunit.c:2568 #15 0x0000000000b1f4eb in compile_file () at ../../git/gcc/gcc/toplev.c:490 #16 0x0000000000b21155 in do_compile () at ../../git/gcc/gcc/toplev.c:2003 #17 toplev::main (this=0x7fffffffc1a0, argc=<optimized out>, argv=<optimized out>) at ../../git/gcc/gcc/toplev.c:2137 #18 0x00000000012eae67 in main (argc=6, argv=0x7fffffffc2a8) at ../../git/gcc/gcc/main.c:39 (gdb) list 5080 5081 switch (GET_CODE (x)) 5082 { 5083 case CONST_INT: 5084 case CONST_WIDE_INT: 5085 t = wide_int_to_tree (type, std::make_pair (x, TYPE_MODE (type))); 5086 return t; 5087 5088 case CONST_DOUBLE: 5089 STATIC_ASSERT (HOST_BITS_PER_WIDE_INT * 2 <= MAX_BITSIZE_MODE_ANY_INT); (gdb) p type $1 = (tree) 0x0 (gdb) p debug_rtx (x) (const_int 0 [0])