This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/72766] [7 Regression] tree check fail in get_len, at tree.h:5303
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 01 Aug 2016 13:35:12 +0000
- Subject: [Bug c++/72766] [7 Regression] tree check fail in get_len, at tree.h:5303
- Auto-submitted: auto-generated
- References: <bug-72766-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72766
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
#11 0x0000000000a7d226 in cxx_eval_pointer_plus_expression (
ctx=0x7fffffffd200, t=<integer_cst 0x7ffff69fac60>, lval=false,
non_constant_p=0x7fffffffd237, overflow_p=0x7fffffffd236)
at /space/rguenther/src/svn/trunk/gcc/cp/constexpr.c:3585
3585 if (!tree_int_cst_le (t, nelts))
(gdb) l
3580 {
3581 tree type = TREE_TYPE (op00);
3582 t = fold_convert_loc (loc, ssizetype, TREE_OPERAND (op00, 1));
3583 tree nelts = array_type_nelts_top (TREE_TYPE (TREE_OPERAND (op00,
0)));
3584 /* Don't fold an out-of-bound access. */
3585 if (!tree_int_cst_le (t, nelts))
3586 return NULL_TREE;
3587 op01 = cp_fold_convert (ssizetype, op01);
3588 /* Don't fold if op01 can't be divided exactly by TYPE_SIZE_UNIT.
3589 constexpr int A[1]; ... (char *)&A[0] + 1 */
(gdb) p t
$1 = <integer_cst 0x7ffff69fac60>
(gdb) p nelts
$2 = <nop_expr 0x7ffff69fdb80>