https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77618

            Bug ID: 77618
           Summary: warn for explicit instantiation that occurs after an
                    explicit specialization
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---

clang has a nice warning:

 % cat foo.ii
template <typename T> void foo() {}
template <> void foo<int>() {}
template void foo<int>();

 % clang++ -c foo.ii
foo.ii:3:15: warning: explicit instantiation of 'foo<int>' that occurs after an
explicit specialization has no effect [-Winstantiation-after-specialization]
template void foo<int>();
              ^
foo.ii:2:18: note: previous template specialization is here
template <> void foo<int>() {}
                 ^
1 warning generated.

Would be nice to have in gcc, too.

Reply via email to