https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64292
Bug ID: 64292 Summary: [5.0 regression] FAIL: g++.dg/torture/pr60474.C -O1 (internal compiler error) Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: sch...@linux-m68k.org CC: mpolacek at gcc dot gnu.org Target: m68k-*-* $ gcc/xg++ -B gcc/ -S -O ../gcc/testsuite/g++.dg/torture/pr60474.C ../gcc/testsuite/g++.dg/torture/pr60474.C: In function ‘void fn1(A<int>&, int Layer::*, int)’: ../gcc/testsuite/g++.dg/torture/pr60474.C:12:6: internal compiler error: tree check: expected boolean_type or enumeral_type or integer_type, have offset_type in negate_expr_p, at fold-const.c:403 void fn1 (A<int> &p1, int Layer::*p2, int p3) ^ 0xe28144 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9226 0x916519 any_integral_type_check ../../gcc/tree.h:3015 0x916519 negate_expr_p ../../gcc/fold-const.c:403 0x922f62 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:10590 0x931baa fold_build2_stat_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:14285 0xfacc9e add_elt_to_tree ../../gcc/tree-affine.c:439 0xfaeba2 aff_combination_to_tree(aff_tree*) ../../gcc/tree-affine.c:502 0xd0ff98 get_loop_invariant_expr_id ../../gcc/tree-ssa-loop-ivopts.c:4080 0xd0ff98 get_computation_cost_at ../../gcc/tree-ssa-loop-ivopts.c:4246 0xd12e1c get_computation_cost ../../gcc/tree-ssa-loop-ivopts.c:4328 0xd12e1c determine_use_iv_cost_generic ../../gcc/tree-ssa-loop-ivopts.c:4355 0xd12e1c determine_use_iv_cost ../../gcc/tree-ssa-loop-ivopts.c:4913 0xd15168 determine_use_iv_costs ../../gcc/tree-ssa-loop-ivopts.c:5033 0xd15168 tree_ssa_iv_optimize_loop ../../gcc/tree-ssa-loop-ivopts.c:6847 0xd15983 tree_ssa_iv_optimize() ../../gcc/tree-ssa-loop-ivopts.c:6893 0xd24250 execute ../../gcc/tree-ssa-loop.c:471 <offset_type 0x7ffff6807348 type <integer_type 0x7ffff66c4690 int sizes-gimplified public type_6 SI size <integer_cst 0x7ffff66c06f0 constant 32> unit size <integer_cst 0x7ffff66c0708 constant 4> align 16 symtab 0 alias set -1 canonical type 0x7ffff66c4690 precision 32 min <integer_cst 0x7ffff66c0930 -2147483648> max <integer_cst 0x7ffff66c0948 2147483647> pointer_to_this <pointer_type 0x7ffff66dd930>> public SI size <integer_cst 0x7ffff66c06f0 32> unit size <integer_cst 0x7ffff66c0708 4> align 16 symtab 0 alias set -1 canonical type 0x7ffff6807348 basetype <record_type 0x7ffff67f57e0 Layer>>