ICE in cp/semantics.c:cxx_eval_indirect_ref
Gabriel Dos Reis
gdr@integrable-solutions.net
Wed Dec 14 23:55:00 GMT 2011
On Wed, Dec 14, 2011 at 1:36 PM, Diego Novillo <dnovillo@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.
More information about the Gcc
mailing list