https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91705
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Candidate fix: --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -4162,7 +4162,6 @@ cxx_eval_increment_expression (const constexpr_ctx *ctx, tree t, tree type = TREE_TYPE (t); tree op = TREE_OPERAND (t, 0); tree offset = TREE_OPERAND (t, 1); - gcc_assert (TREE_CONSTANT (offset)); /* The operand as an lvalue. */ op = cxx_eval_constant_expression (ctx, op, true, @@ -4172,6 +4171,11 @@ cxx_eval_increment_expression (const constexpr_ctx *ctx, tree t, tree val = cxx_eval_constant_expression (ctx, op, false, non_constant_p, overflow_p); + + offset = cxx_eval_constant_expression (ctx, offset, false, + non_constant_p, overflow_p); + VERIFY_CONSTANT (offset); + /* Don't VERIFY_CONSTANT if this might be dealing with a pointer to a local array in a constexpr function. */ bool ptr = INDIRECT_TYPE_P (TREE_TYPE (val));