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