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

    <tr>
        <th>Summary</th>
        <td>
            Emit a diagnostic note at the class declaration when the method definition does not match any declaration.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            good first issue,
            clang:frontend,
            clang:diagnostics
      </td>
    </tr>

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

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

<pre>
    Considering the follow case:

```
template <class T>
class FooBar {
 double Foo();
};

template <class T>
double FooBar<T>::Bar() { return 0.0; }
```

Currently, Clang only emits the error out-of-line definition of 'Bar' does not match any declaration at the Bar definition. It would be helpful to also emit a note pointing to the FooBar class declaration (GCC already does this).

See https://godbolt.org/z/GG8zvvzaP



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEUlGPmzwQ_DXLyyqI2BDggYeEHKfv7ZPaP2BgAbeON7JNTrlfXwGpcu1VrYQM6zGz45lV3uvRElWQnSA7R2oOE7tq4u-kbdRyf69qtl735LQdMUyEAxvDb9gpTyCPkJwh-bkeksezloEuV6MCIci6M8p7_AryZcO2umE-KYeQn7Zd7HluDS37IAoQJcgHAvn5-f1P9ifNSTmQ9YrII8jjUq_MS1N0FGZnMYkTkCdcevzpHttaz86RDeYOosbaKDsiW3NHuujgV2PIOXbIc9jxsDPaEvY0aKuDZos8IIh8bZ9jz-TRcsCLCt2Eyt6xp84op9azKqx8izVPhhj_C_jGs-mxJZzIXIfZYGBUxvOqAtXCSXhlbcOaFq88D5c3kz72AVG81jUq40j1901VmLQHUcYfr_6FCKcQrn7xUDQgmpH7lk2I2Y0gmncQzetr8X67vav_fxmIdY36SvalLFVE1T4XeS7SskyjqZKUdS1lMhUlFa0qDqro2qJLk06VyUENka5EItKklMm-lAeZxt1hOBSZHKhQSb7fE6QJXZQ2sTG3y6Im0t7PVO33SZYVkVEtGb_OthAjc4-Ddj7gegiEAFGDEN0SJsjj4NgGsv0noNdqtOyD7vyCZefIVUvDXTuPHtLEaB_8U0LQwVD1siXy_HcL55Ht5zDeJrIrdKEwcf9xdv4-LnE0O1P9lo8O09zGHV9ANIuwx2t3dfyNugCiWT3wIJqHV7dK_AgAAP__7jZGrw">