On 15 November 2012 01:51, Jason Merrill wrote: > This bug arose because I was using DECL_SOURCE_LOCATION to determine whether > this is the first declaration of the class. Which may be fragile, but I > don't see another way to do it. But for an explicit specialization we were > treating the template declaration as the initial declaration, so the > specialization looked like a redeclaration. Fixed by adjusting the > DECL_SOURCE_LOCATION when we decide that we're dealing with a new explicit > specialization. This also improves some error message locations.
The improved error locations fix PR c++/47343, thanks!