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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Inline [[clang::always_inline]] crashes when applied to a function with the same name (but a different overload)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            crash-on-valid
      </td>
    </tr>

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

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

<pre>
    The following program should compile without error, but crashes Clang. This doesn't happen when `f(T)` is a non-template. Reproduced on both Clang 15 and near ToT.
```cpp
void f(int*, int) {}

template<class T>
void f(T t) {
  [[clang::always_inline]] f(t, 0);
}

int main() {
  f(nullptr);
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNU02PmzAQ_TXmMgoyJhA4cMgmXanXintl8AS8cmxkm0T77zsmm60U9VBpZPzBzLzn9zw49dn1M8LFGePu2k6weDd5eYUwu9UoGN110QbhriNtREDvnWfiBAMtRi_DjAFORtoph37WAZTDYJk4RJjlsqCF-0wDq_mFiaZnoqUp0H8SrLO7iNfFyIg5_ELqrNYRFTgLg4vzoywUFUirwKL00Ls-Z_zM-JGqPGJclsfOzWkFqYm2kYljwrjNWmCHN3Y4f-Vt47MtK0-jkSFAz8ofL2V6-E7eDgBY9UYxJlSsPFJIc5ef4be2Rltk1ZliS42pOU9cy6_kl_4EDK5S0z01Lz1Sul2NWaL_d_6Td4ZdUddlta_qQ5OprlRt2cos6miw-4ZJgH5u6P4P_FPQTTOSz2iSIzoS67LaMWpSJhkBIlkmyCuCTQNBTm6QoPTlgh6JnLuhN04q4pCt3nRzjEtIfcU7xUQ11iEnb9HCmNvzsyMLfOBI1_euQ1gx0KQ6NEWdzZ2q94eKF1juJeeDVI1UY9uWo-RDyZGYGzmgCYk6E-LBU4gkRFomXjvy200ardJ-dc50J7gQvC1aznlRNDmWw1jwBmvVKI7VwPYcSSWTJ2y581Pmuw3msE6BDo0OMfw9JB_pyeJ2-6m-XOnJ-G78UEO20ek2Ln8AVGwNYw">