https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109083
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- We don't instantiate in that case, just look up a specialization which might be or might not be later instantiated (which is when it is diagnosed). One way to fix this would be to drop locations from the expressions in the template arguments if we use them from multiple spots. But that could result in less accurate diagnostics.