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

    <tr>
        <th>Summary</th>
        <td>
            [Modules] Stack dump on perfect forwarding self in friend
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    `m3.cpp`:
```C++
export module m3;
export template <class> struct X {
  template <class Self> friend void f(Self &&self) {
    static_cast<Self &&>(self);
  }
};
void g() { f(X<void>{}); }
```
Command: `clang++  -fmodules -std=c++2b -c m3.cpp`
Output:
```terminal
m3.cpp:5:5: error: cannot compile this unexpected cast lvalue yet
    static_cast<Self &&>(self);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /home/johel/root/clang/bin/clang++ -fmodules -std=c++2b -c m3.cpp
1.      <eof> parser at end of file
2.      Per-file LLVM IR generation
3.      m3.cpp:4:35: Generating code for declaration 'f'
 #0 0x000055b0ad108c8a (/home/johel/root/clang/bin/clang+++0x19e1c8a)
 #1 0x000055b0ad10654f (/home/johel/root/clang/bin/clang+++0x19df54f)
 #2 0x000055b0ad06dac9 (/home/johel/root/clang/bin/clang+++0x1946ac9)
 #3 0x00007f13d103e8e0 (/usr/lib/libc.so.6+0x3e8e0)
 #4 0x000055b0aca1d488 (/home/johel/root/clang/bin/clang+++0x12f6488)
 #5 0x000055b0ad7e61b5 (/home/johel/root/clang/bin/clang+++0x20bf1b5)
 #6 0x000055b0ad807838 (/home/johel/root/clang/bin/clang+++0x20e0838)
 #7 0x000055b0ad7fdcde (/home/johel/root/clang/bin/clang+++0x20d6cde)
 #8 0x000055b0ad7fd20f (/home/johel/root/clang/bin/clang+++0x20d620f)
 #9 0x000055b0ad4daf53 (/home/johel/root/clang/bin/clang+++0x1db3f53)
#10 0x000055b0ad4dc109 (/home/johel/root/clang/bin/clang+++0x1db5109)
#11 0x000055b0ad53867e (/home/johel/root/clang/bin/clang+++0x1e1167e)
#12 0x000055b0ad549d95 (/home/johel/root/clang/bin/clang+++0x1e22d95)
#13 0x000055b0ad58d5fe (/home/johel/root/clang/bin/clang+++0x1e665fe)
#14 0x000055b0ad58a045 (/home/johel/root/clang/bin/clang+++0x1e63045)
#15 0x000055b0ad59280e (/home/johel/root/clang/bin/clang+++0x1e6b80e)
#16 0x000055b0ad593ae2 (/home/johel/root/clang/bin/clang+++0x1e6cae2)
#17 0x000055b0ae1dec6b (/home/johel/root/clang/bin/clang+++0x2ab7c6b)
#18 0x000055b0ae1dc43d (/home/johel/root/clang/bin/clang+++0x2ab543d)
#19 0x000055b0aed4a6f1 (/home/johel/root/clang/bin/clang+++0x36236f1)
#20 0x000055b0adb9f1e9 (/home/johel/root/clang/bin/clang+++0x24781e9)
#21 0x000055b0adb28e1c (/home/johel/root/clang/bin/clang+++0x2401e1c)
#22 0x000055b0adc538df (/home/johel/root/clang/bin/clang+++0x252c8df)
#23 0x000055b0abe21258 (/home/johel/root/clang/bin/clang+++0x6fa258)
#24 0x000055b0abe1aab7 (/home/johel/root/clang/bin/clang+++0x6f3ab7)
#25 0x000055b0ad9959e9 (/home/johel/root/clang/bin/clang+++0x226e9e9)
#26 0x000055b0ad06db97 (/home/johel/root/clang/bin/clang+++0x1946b97)
#27 0x000055b0ad995e2f (/home/johel/root/clang/bin/clang+++0x226ee2f)
#28 0x000055b0ad960fb8 (/home/johel/root/clang/bin/clang+++0x2239fb8)
#29 0x000055b0ad961a5d (/home/johel/root/clang/bin/clang+++0x223aa5d)
#30 0x000055b0ad96e8fd (/home/johel/root/clang/bin/clang+++0x22478fd)
#31 0x000055b0abe1f427 (/home/johel/root/clang/bin/clang+++0x6f8427)
#32 0x00007f13d1029290 (/usr/lib/libc.so.6+0x29290)
#33 0x00007f13d102934a __libc_start_main (/usr/lib/libc.so.6+0x2934a)
#34 0x000055b0abe19c25 (/home/johel/root/clang/bin/clang+++0x6f2c25)
clang-16: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 4191d661c74622c6fa72c1643e4567f45e6c9e1b)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /home/johel/root/clang/bin
clang-16: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-16: note: diagnostic msg: /tmp/m3-a2e81f.cpp
clang-16: note: diagnostic msg: /tmp/m3-a2e81f.cache
clang-16: note: diagnostic msg: /tmp/m3-a2e81f.sh
clang-16: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytWNty2zYQ_RrqBSMNCZAg-aAHx7ek49Se2G3z5gHBhcSUtwFAx_n7Lkj5AqWdOkE8tEQBy3OwNwK71VB_20Y87thGjiPeROwkis-i-MTdz9dpRN-5ax6Fx3HQlnRDPbVAOhYxf8JCN7bCAonYqWyFMRE7J8bqSVrymUT5QZp8L0huoVVOWukG-po8DE1NVEQLN04iyvEyToSWr3EIogvbyHspjEWsV9IIho8fnnleKMGnzw4q4s3T8Ey3Q_kD_kz9GQHdhENCShSfgV4hPBlp-Xk6dJ3oUfyE4Biq1e8W4xGyVovNDFkbixJncpmhFVlL8mL-Ged6suNkv3eFBd01vWiX4cND7CQ7_BPQetDuRoq-HyyRQzc26Ce7bwyZevQRSAs1cbYi7YNoJyDfwAbYEq2ZoW1-3TXj3lydn9xi3ExV11giSDXtiIYlwAayt3Y0zjj0Aq9dY_dTtUFV8UfbPjx9rUc9fEF18WdjzAQGbwg6hzS9bKfaGQWI1MLsSSXk31YLCRE9JSMS6UGCMWgoM0x6GXZPYpQOshHOgnrqiZG6Ge1mWfKtRRBST9347LYYp8obPey06IjQu6mD3po5OOjFfugQ9-LLsIcWv_UwuJUeQuaiavqXX3MAvSl-ZtrE0aL3YJjTaRTagCbCEpdVgyIKI2KRpPMCQa_dELm6-vMj-fCJ7KAHjWEw9IsUc1LPsZbiP5uD7fIg1-8wztCeatCkBlzz8jAqmWOw5IdIiSiLSfwY41-WVbGok7iQhSBzxv2oNfCKH5MSEkRw8fhMkRxR8CxVQRS1QgSPgnoUMa-FLIMoUo4IHgU7UOQqYagEgwLiA8VktIvvplo-5cYMGz4DzVIeTPp6pVIkdVoUISuliiOCR5F5xsiBJ1UWQEHjSiGCR8E9iiLOCxaiBY0hRgSPIve1ULXEcA6hqDkieBTFMQWNQwLTUSCCR1F6FGktVMZC3F1XDBGeKVx2xUcUMomDYr-uMkTwKPwMzljB8xBfJJAkiOBR-BmcpWVdhgRtApQigkfBfIqizlSYFpwjgkeRHlGIOA3TgjNE8Cj87M5KWsSBWlSI4FHwIwomgIZRSETwKLzshgS3KF6FpJ6ockTwKIojCpmyOowiQwSPwstuqFPBVRJAwTi-WVXymoL62V2VKoGQ7KZpXiCCR-Fnd0UL3MKDKGJMcOlR-Nkt8Q1SB71pMyoRwaPwsrsCmtAsZEviSiCAx5D6DInAoAtiYAjgMfi5XZZZGeZsyqE8cjY_PilVZYgS7qSECB5FfqwF0CBnoxaI4FH4O3fJY1UFnT9wo0YEj6I8okhEFvT6oEwgwmuKo7N3yaFQYRSY3MqnSI5iVqU0LGYLBPAYqH8upiUt__9cPEt5MOwYhqWC3N-7x-6xANb2vhNN_wZgfM4DPs7aUtKQLZkrigDPDPP0OuF-oe8GidJDb115J5cGBFECK7qafMXamMBjY5cKLWFzik8GyPrBVdIGAMvhh0Eu5Z7HRB5AG1fHJXwTb2Y7_1jhvUEBkiZlUnOeyDzllEp81eVUJjxlkGY8V2mGGzbWcS_b6R0WyuBaH-Sx4Pc8XY9y3Tb99Lje9dNBZK9B1K4HhbZEwXEwzeMy9aFHB7ao-lmj31xof2fdfrDgvutG7PrB2AYLbLOb8Q6-DrgWhNdtjpO7u5PT9-Tu_Tm5uL66uv7rw--X5OLD1fktubueh9_9cUk-nd9cf7p7bi7c_FubojCue_WfrYpnAQ2kdU7HWfHSZnqjCeiF7Ub87NhaUCgS9dJ6-HkEIfcQiGH2P-HJX-XPpw7dCrYJx5Mynq8Ktqq3rC5ZKVa2sS1so-zdx6WJE2Vn5KVjRDDLRtAKk8Z1Ub4KXbuuiuu2YXoeGqKrSbfbn299ZbygfLXfgmJZDKrKMwEsS2M8ekBMeVznaQ1lSVctvrla49YaUdrDVzJD4D2uedVsaUxpnGMpiEeWONnkUpUVVCVqyTlXKkpjwLdnu3Hr2Ax6t9LbeUnVtDM42TbGmpdJDNNm18NsGocvJrsf9PY3l6znlzermXs7r_0fgINkVA">