https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123621

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think that was a different case.
In this case we are trying to mangle something created by
tsubst_qualified_id -> finish_qualified_id_expr -> finish_qualified_id_expr ->
finish_non_static_data_member and that uses build_dummy_object.
And reflect.cc doesn't want to say that
((struct Y *) <<< Unknown tree: void_cst >>>)->name (i.e. ((struct Y *)
nullptr)->name) is an object.
I guess that is ok.
So probably what is not ok is that we try to tsubst
<<< Unknown tree: reflect_expr
  <<< Unknown tree: scope_ref
    <<< Unknown tree: template_type_parm >>>
    name >>> >>>;
as something with build_dummy_object in it.  Instead it should be tsubsted
probably just as a SCOPE_REF with Y and the FIELD_DECL (of course only if it is
REFLECT_EXPR operand).

Reply via email to