On Wed, Dec 14, 2011 at 1:36 PM, Diego Novillo <dnovi...@google.com> wrote:
>
> Jason,
>
> I'm trying to triage an ICE that we found in one of our internal builds on a
> recent merge from trunk.  The ICE occurs in:
>
> static tree
> cxx_eval_indirect_ref (const constexpr_call *call, tree t,
>                       bool allow_non_constant, bool addr,
>                       bool *non_constant_p)
> {
> [ ... ]
>  if (r)
>    r = cxx_eval_constant_expression (call, r, allow_non_constant,
>                                      addr, non_constant_p);
>  else
>    {
>      tree sub = op0;
>      STRIP_NOPS (sub);
>      if (TREE_CODE (sub) == ADDR_EXPR
>          || TREE_CODE (sub) == POINTER_PLUS_EXPR)
>        {
> ==>          gcc_assert (!same_type_ignoring_top_level_qualifiers_p
> ==>                      (TREE_TYPE (TREE_TYPE (sub)), TREE_TYPE (t)));

> AFAICT, this assertion was introduced by
>
> commit ace3c39fedeb99434010407708a44e397c45b535
> Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Tue Nov 2 01:31:02 2010 +0000

I could not differentiate POINTER_PLUS_EXPR from all other similar
incarnation, so Jason suggested the assertion to make sure we don't
fool ourselves.

Reply via email to