<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57533>57533</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Bad "ignoring 'static' keyword on explicit template instantiation" warning
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:diagnostics
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          zmodem
      </td>
    </tr>
</table>

<pre>
    Consider:

```
$ echo 'static template <typename T> void f() {}' | bin/clang -c -x c++ -
<stdin>:1:1: warning: ignoring 'static' keyword on explicit template instantiation [-Wstatic-inline-explicit-instantiation]
static template <typename T> void f() {}
^
1 warning generated.
```

The warning is confusing because I wasn't trying to do an explicit template instantiation, I was trying to do a template declaration.

Perhaps it could have a hint about moving the static keyword, i.e. change the code to `template <typename T> static void f() {}`?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylU8uu2yAQ_Rq8QbYIfi-8aF5Sd11cqWsME5sWQwQ496Zf37GTNG11q0qthPGM5nXOzNA7de12zgatwJP8A2F7wh53xe7npvKCghwdJbwOUUQtaYTpbEQESvJdvJ7BignoC8kP9OK0oifCG8JbSuotqfcYhtKO9toSfpRG2IGmkqZvVBK-xUPTe6F8F6JCr_yAiDb3j74Kb7UdFlEP1nmUn1CW5F_h-uq8os5SeDsbLXV8ItQWHW3U6Ix2Um7Tz7fIVFujLaSPkPQXT1Lub6D-ifGNTnm4CZsHBTqABY9ZVPZ-p9f7ZYQfATpQ6expDovSgxRzAPoRzQF7WSNNf10s0VHlqPgrf8J3t-jfAp_uCnBAfnXOfgb1CfwozoFiaulmo-goLoCBo7aRit7NkU7usqZE-Pem3QezVNUZZFSOOHtYPaRTsFRH7n9u7T3Nex3GluXHBLpNVfFNUZQ1S1SXqzZvRRJ1NNBthcI14f-7MpjiMY1k9qYbYzyH5cHwI55Bx3HuM-kmVIy5PH7p2bsvICOqOoQZAgplXeZ5MnYnWeQAqigr2QCrWFW2TdOqsuBM9JuKJUb0YEKHu4rF1_eC9ZQWyCQgfszFcT0T3XHGOWsZ3zRFy5usLsoW2Kk_1U3b1yBIwWAS2mQLosz5IfHdCq6fh4BGo0MMT6MIAZsFsBbG_GKOo_PdtwlHNSUrjW7l8B23TFnm">