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

    <tr>
        <th>Summary</th>
        <td>
            [clang] name mangling for lambda's in local classes broken since clang-13
        </td>
    </tr>

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

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

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

<pre>
    Minimal Reproducible Example:

```cpp
#include <iostream>
#include <functional>

int main(){
  class Test{
    public:
 std::function<void()> a{[]{ std::cout << "a\n"; }};
 std::function<void()> b{[]{ std::cout << "b\n"; }};
 std::function<void()> c{[]{ std::cout << "c\n"; }};
  };
  
 Test test{};
  test.a();
  test.b();
  test.c();
}

// output:
c
c
c

// expected:
a
b
c
```

godbolt setup with clang-trunk, clang-12 and gcc-trunk: https://godbolt.org/z/EM36r4Ybo

So, if you have a local class with lambda's the name mangling seems to be missing/going wrong. Resulting in only one actual lambda being declared.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVEtv6yoQ_jV4M2pkg19ZeNG8dt303s1d8pg43GKwDPRxfv0RjtMmUXVU6UiIEd88vuFjBPde9xaxI9WGVLuMx3ByU6c4t0EPA06ZcOqje9JWD9zAM46TU1FqYRD273wYDRL2SPIdyS97nZ-XHMcFoUxbaaJCIGyrnQ8T8oGw_XfuY7QyaGe5-QqYd20DDFxbQltC16TZnGEAabj38C_6cAUCjFEYLT-bAx9UOrDHCwNh21en1VKP7YGn_FkG0my-4qWLIXVG2BYIpZxUW0soJWwDpNmlxTY_5hA_4hB_xSF_xCH_wAF3p7NNEkNYdL4JSOCKXzq4hcX3sLyDU8HrKaIHQg_gYhhj-HxE-Z25ScD3EWVA9ZnCz0bcplxm9LpC75RwJoDHEEd40-GURsv2D2GK9oXQ7XIsKHCroJdy8bBHOIUw-sQ5d7FUWrmpJ_Twi9DD_onVU_mfcNeE_7hUVB_hw0U48VcEDsZJbpaRnlswfBCKE9p4CCcEyweEgdveaNuDRxw8BAcCYdDea9vP9Mn3Njnbr-AZfTQhAdqCs-YDnEXgMkRuluIgMPkVSsMnVKtMdUyt2Zpn2BVNwWjTNus8O3Utr9p1s86LqqyZZJJSRlt1ZEVVMNpWmOmO5rTMy6IuyrJm-UoqWrSKtlVd84rmkpQ5DlyblTGvQ9In095H7Np2ndeZ4QKNn78iSmex03xWu2zqUvyDiL0nZW60D_6rQtDBzP_XOaPa3Yl0dNO1itpei4wexORe0ILXVuLliVkWJ9PdvaoOpyhW0g2EHhL7Yh7Gyf2PMhB6mC_jCT3M9_kdAAD__0Zii0s">