https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68066
Bug ID: 68066
Summary: [6 Regression]: ICE in max_value, at wide-int.cc
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: ubizjak at gmail dot com
Target Milestone: ---
Target: alpha-linux-gnu
Recent regression, FAILs in the testsuite on alpha-linux-gnu:
FAIL: gcc.dg/fold-compare-7.c (internal compiler error)
FAIL: gcc.dg/fold-compare-7.c (test for excess errors)
This failure can be triggered with a crosscompiler to alpha-linux-gnu:
~/gcc-build-alpha/gcc/cc1 -O2 -fpreprocessed -quiet fold-compare-7.c
fold-compare-7.c: In function âfâ:
fold-compare-7.c:8:1: internal compiler error: in max_value, at wide-int.cc:308
}
^
0xe0c6c8 wi::max_value(unsigned int, signop)
../../gcc-svn/trunk/gcc/wide-int.cc:308
0xdb537c integer_all_onesp(tree_node const*)
../../gcc-svn/trunk/gcc/tree.c:2372
0xdb5452 integer_all_onesp(tree_node const*)
../../gcc-svn/trunk/gcc/tree.c:2364
0xeccbd7 generic_simplify_VEC_COND_EXPR
/home/uros/gcc-build-alpha/gcc/generic-match.c:23341
0x7b4bdb fold_ternary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*, tree_node*)
../../gcc-svn/trunk/gcc/fold-const.c:11351
0xe292cf gimple_resimplify3(gimple**, code_helper*, tree_node*, tree_node**,
tree_node* (*)(tree_node*))
../../gcc-svn/trunk/gcc/gimple-match-head.c:222
0xe93abd gimple_simplify(gimple*, code_helper*, tree_node**, gimple**,
tree_node* (*)(tree_node*), tree_node* (*)(tree_node*))
../../gcc-svn/trunk/gcc/gimple-match-head.c:718
0x826370 fold_stmt_1
../../gcc-svn/trunk/gcc/gimple-fold.c:3605
0x82740d fold_stmt(gimple_stmt_iterator*, tree_node* (*)(tree_node*))
../../gcc-svn/trunk/gcc/gimple-fold.c:3816
0xbff600 execute
../../gcc-svn/trunk/gcc/tree-ssa-forwprop.c:2326
Please submit a full bug report,
(gdb) bt
#0 internal_error (gmsgid=0x123aab5 "in %s, at %s:%d") at
../../gcc-svn/trunk/gcc/diagnostic.c:1134
#1 0x000000000105dffc in fancy_abort (file=<optimized out>, line=308,
function=0x11af765 <wi::max_value(unsigned int, signop)::__FUNCTION__>
"max_value") at ../../gcc-svn/trunk/gcc/diagnostic.c:1209
#2 0x0000000000e0c6c9 in wi::max_value (precision=308, sgn=<optimized out>) at
../../gcc-svn/trunk/gcc/wide-int.cc:308
#3 0x0000000000db537d in integer_all_onesp (expr=0x2aaaae876b40) at
../../gcc-svn/trunk/gcc/tree.c:2372
#4 0x0000000000db5453 in integer_all_onesp (expr=0x2aaaae886c30) at
../../gcc-svn/trunk/gcc/tree.c:2364
#5 0x0000000000eccbd8 in generic_simplify_VEC_COND_EXPR (loc=0, code=18544485,
type=0x2aaaae889738, op0=0x134, op1=0x2aaaae8869b0,
op2=0x2aaaae886960) at generic-match.c:23341
(gdb) f 2
#2 0x0000000000e0c6c9 in wi::max_value (precision=308, sgn=<optimized out>) at
../../gcc-svn/trunk/gcc/wide-int.cc:308
308 gcc_checking_assert (precision != 0);
(gdb) up
#3 0x0000000000db537d in integer_all_onesp (expr=0x2aaaae876b40) at
../../gcc-svn/trunk/gcc/tree.c:2372
2372 return wi::max_value (TYPE_PRECISION (TREE_TYPE (expr)), UNSIGNED) ==
expr;
(gdb) p debug_generic_expr (expr)
0
$2 = void
(gdb) p debug_tree (expr)
<integer_cst 0x2aaaae876b40 type <boolean_type 0x2aaaae889888> constant 0>
$3 = void