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

    <tr>
        <th>Summary</th>
        <td>
            coroutine: generateAwaitSuspendWrapper doesn't generate a valid mangled name
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            c++20,
            coroutines
      </td>
    </tr>

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

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

<pre>
    The function name generated by the `CodeGenFunction::generateAwaitSuspendWrapper` is not a valid mangled name, it can not be demangled.

E.g. the name generated for the `clang/test/CodeGenCoroutines/pr65054.cpp` is `__await_suspend_wrapper__Z6FooBarv_await`, 

```
$ ./bin/llvm-cxxfilt __await_suspend_wrapper__Z6FooBarv_await
__await_suspend_wrapper__Z6FooBarv_await
``` 

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUktuumzwQhZ9muLF-5AxgkgsukuyfPkArVepNZOMB3Do2ss0-vH3FYR9UVVUrIaQZFp5vvJaM0QyOqIHqAtVDJuc0-tCM_gcZlymvX5ovI7F-dl0y3jEn78QGchRkIs3UC0sjMRD86jV9ItfuQijOUJxfhecnadLnOU7k9Ncgp4kCCM5MZM4nJtmjtEazu3SDJb3OALwyk1gn3SpRxDTt33PgD8DP2_v_fMhXhF_Aeh9eyTor3QDYJooJsN1Brz74ORlHEbCdgqh4VebdNO1cIPjtJhfsW9y4b08b-O32TbTeX2R43AQg-EL7kWppbc9WYslywFYZB9ha-3j_r3t-7o1N7K-HrAf9m_qNYmfLdFPoU3GSGTWH-lAcBVZCZGNDvKBK9TX2mncHVWsqa6GPNe97rrtKZaZBjiUvseDHSnCRC6H4gfdKdXWtD6cKSk53aWy-LJf7MGQmxpma46nGIrNSkY1rxBB3OxDwulSAF8AL8vfOB2NwiWRo1htT8xCh5NbEFN_HJJMsNW__QHFmfwgd056iA6zTm-q36cvmYJsxpSkuOcYWsB1MGmeVd_6-W_jq5BT8d-qWZK0rL3Fat_4ZAAD__0OeF6U">