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

            Bug ID: 81505
           Summary: [5/6/7/8 Regression] ICE in tree-ssa-loop-manip.c:95
                    with -fsanitize=signed-integer-overflow
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org,
                    marxin at gcc dot gnu.org, mpolacek at gcc dot gnu.org
  Target Milestone: ---

Starting from Marek's commit r218621, we ICE on:

$ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr52298.c
-fsanitize=signed-integer-overflow -O3 -c

during GIMPLE pass: vect
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr52298.c: In
function ‘fn1’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr52298.c:8:1:
internal compiler error: tree check: expected integer_cst, have negate_expr in
get_len, at tree.h:5351
 fn1 ()
 ^~~
0x10e3467 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/tree.c:9848
0x762eda tree_check(tree_node const*, char const*, int, char const*, tree_code)
        ../../gcc/tree.h:3339
0x762eda wi::extended_tree<192>::get_len() const
        ../../gcc/tree.h:5351
0x762eda wi::int_traits<generic_wide_int<wi::extended_tree<192> >
>::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<192> >
const&)
        ../../gcc/wide-int.h:929
0x762eda
wide_int_ref_storage<true>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<192>
> >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int)
        ../../gcc/wide-int.h:976
0x762eda generic_wide_int<wide_int_ref_storage<true>
>::generic_wide_int<generic_wide_int<wi::extended_tree<192> >
>(generic_wide_int<wi::extended_tree<192> > const&, unsigned int)
        ../../gcc/wide-int.h:753
0x762eda bool wi::lts_p<generic_wide_int<wi::extended_tree<192> >,
generic_wide_int<wi::extended_tree<192> >
>(generic_wide_int<wi::extended_tree<192> > const&,
generic_wide_int<wi::extended_tree<192> > const&)
        ../../gcc/wide-int.h:1794
0x762eda wi::binary_traits<generic_wide_int<wi::extended_tree<192> >,
generic_wide_int<wi::extended_tree<192> >,
wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type,
wi::int_traits<generic_wide_int<wi::extended_tree<192> >
>::precision_type>::signed_predicate_result operator<
<generic_wide_int<wi::extended_tree<192> >,
generic_wide_int<wi::extended_tree<192> >
>(generic_wide_int<wi::extended_tree<192> > const&,
generic_wide_int<wi::extended_tree<192> > const&)
        ../../gcc/wide-int.h:3107
0x762eda tree_int_cst_lt(tree_node const*, tree_node const*)
        ../../gcc/tree.h:5416
0xf38c1d create_iv(tree_node*, tree_node*, tree_node*, loop*,
gimple_stmt_iterator*, bool, tree_node**, tree_node**)
        ../../gcc/tree-ssa-loop-manip.c:95
0x175f492 vect_create_data_ref_ptr(gimple*, tree_node*, loop*, tree_node*,
tree_node**, gimple_stmt_iterator*, gimple**, bool, bool*, tree_node*)
        ../../gcc/tree-vect-data-refs.c:4204
0x1052aa7 vectorizable_load
        ../../gcc/tree-vect-stmts.c:7360
0x105af69 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*,
_slp_tree*, _slp_instance*)
        ../../gcc/tree-vect-stmts.c:8645
0x107244c vect_transform_loop(_loop_vec_info*)
        ../../gcc/tree-vect-loop.c:7544
0x108ce38 vectorize_loops()
        ../../gcc/tree-vectorizer.c:745
0xf58a71 execute
        ../../gcc/tree-ssa-loop.c:412

Where my x86_64 tuning is: -mtune=generic -march=x86-64

Reply via email to