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

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
In finish_class_member_access_expr we have
  expr = build_class_member_access_expr (object, member, access_path,
                                         /*preserve_reference=*/false,
                                         complain);
  if (processing_template_decl && expr != error_mark_node)
    {    
      if (BASELINK_P (member))
        {
          if (TREE_CODE (orig_name) == SCOPE_REF)
            BASELINK_QUALIFIED_P (member) = 1; 
          orig_name = member;
        }
      return build_min_non_dep (COMPONENT_REF, expr,
                                orig_object, orig_name,
                                NULL_TREE);

build_class_member_access_expr builds a component_ref that seems to be ok; its
arg1 is a field_decl.  But the subsequent build_min_non_dep call changes this
field_decl into ORIG_NAME, which is an identifier_node.

Reply via email to