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>

Reply via email to