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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |mpolacek at gcc dot 
gnu.org

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Ah, this does what I want:

--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -34473,6 +34473,12 @@ class_decl_loc_t::diag_mismatched_tags (tree
type_decl)
     be (and inevitably is) at index zero.  */
       tree spec = specialization_of (type);
       cdlguide = class2loc.get (spec);
+      if (!cdlguide)
+   {
+     spec = most_general_template (spec);
+     spec = TYPE_MAIN_DECL (TREE_TYPE (spec));
+     cdlguide = class2loc.get (spec);
+   }
       gcc_assert (cdlguide != NULL);
     }
   else

Reply via email to