https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113405
Nathaniel Shead <nathanieloshead at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |nathanieloshead at gmail dot com --- Comment #4 from Nathaniel Shead <nathanieloshead at gmail dot com> --- The issue seems to be that 'depset::hash::add_specializations' only adds the first of a set of constrained specialisations that use the same arguments. This comes down to the fact that the 'type_specializations' hashset is only hashed on the base template and the provided arguments: differently constrained specialisations just aren't added. Other parts of the dependency walker seem to handle this OK, by walking the DECL_TEMPLATE_SPECIALIZATIONS list, but not the base 'specialization_add' function. I'm not entirely sure yet what the best way to approach solving this is.