https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109126
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Is there a reason why this should be treated any differently from non-const variable templates and their explicit specializations? If I try template<typename T> bool var = true; template<> bool var<int> = false; bool *p = &var<char>; with older clang++, older g++ or older ICC, all those have comdat _Z3varIcE and non-comdat global non-weak _Z3varIiE. So the DR just turns the same for const/constexpr variable templates and their specializations too.