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.