https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71380
Bug ID: 71380 Summary: [7 Regression] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2498 Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ktkachov at gcc dot gnu.org Target Milestone: --- GCC trunk at r237026 ICEs on the testcase: int *a; int b, c, d, e, g; char f; void fn1() { for (; c;) { b = 0; for (; b <= 2; b++) { unsigned **h = (unsigned **) &a[b]; *h = (g && (e = d)) != f++; } } } on aarch64 with -Ofast -floop-interchange. mycrash.c: In function 'fn1': mycrash.c:10:10: warning: assignment makes pointer from integer without a cast [-Wint-conversion] *h = (g && (e = d)) != f++; ^ mycrash.c:5:6: internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2498 void fn1() { ^~~ 0x10a45c5 translate_isl_ast_to_gimple::copy_cond_phi_nodes(basic_block_def*, basic_block_def*, vec<tree_node*, va_heap, vl_ptr>) $SRC/gcc/graphite-isl-ast-to-gimple.c:2498 0x10a5030 translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences(basic_block_def*, edge_def*, vec<tree_node*, va_heap, vl_ptr>) $SRC/gcc/graphite-isl-ast-to-gimple.c:2787 0x10a57ed translate_isl_ast_to_gimple::translate_isl_ast_node_user(isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:936 0x10a599d translate_isl_ast_to_gimple::translate_isl_ast(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:1040 0x10a5eb4 translate_isl_ast_to_gimple::translate_isl_ast_node_block(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:965 0x10a59b3 translate_isl_ast_to_gimple::translate_isl_ast(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:1044 0x10a60d6 translate_isl_ast_to_gimple::translate_isl_ast_node_if(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:1004 0x10a598a translate_isl_ast_to_gimple::translate_isl_ast(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:1037 0x10a5eb4 translate_isl_ast_to_gimple::translate_isl_ast_node_block(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:965 0x10a59b3 translate_isl_ast_to_gimple::translate_isl_ast(loop*, isl_ast_node*, edge_def*, std::map<isl_id*, tree_node*, std::less<isl_id*>, std::allocator<std::pair<isl_id* const, tree_node*> > >&) $SRC/gcc/graphite-isl-ast-to-gimple.c:1044 0x10a6467 graphite_regenerate_ast_isl(scop*) $SRC/gcc/graphite-isl-ast-to-gimple.c:3184 0x109db70 graphite_transform_loops() $SRC/gcc/graphite.c:329 0x109dcd4 graphite_transforms $SRC/gcc/graphite.c:356 0x109dcd4 execute $SRC/gcc/graphite.c:433 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. This doesn't occur on the GCC 6 branch for me