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

Reply via email to