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

    <tr>
        <th>Summary</th>
        <td>
            The implementation of `std::common_reference` seems to be wrong
        </td>
    </tr>

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

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

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

<pre>
    ```cpp
#include <concepts>

struct A { };
struct B { 
  B(const A&&) = delete; 
  operator A&&() const; 
};

static_assert(std::same_as<std::common_reference<const A&&, B&&>::type, A>);
static_assert(std::same_as<std::common_reference<const A&&, const B&&>::type, A>);
```

https://godbolt.org/z/1e8Tf3W1P

According to [[meta#trans.other-5]](https://timsong-cpp.github.io/cppwp/meta#trans.other-5), the above two assertions should pass.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytUkuPmzAQ_jXmYgUZExJ84JBsuuceVupxZcwAbg1G9rDR9td3gG42W3WlHioN2PP45vGNa9-8VuwgNjHTxMSFiROTuR2NmxvgLH8wfjQwYWT5l9_u9R8xzAb5ibPjmb4Ly88fHOfNsZo4PzNZUqJIACYPqyhKfuENOEAg8C3UTxA0-vAeWS7BK_o97r7iW12N1jzrGCEggSI2LD-RRD0AmWmUm8n4YfDjc4AWAtB425j33T0sLa9XGnvF4OsEi_20WKS6m_f_1t0M_1r9tr17KnrEKS44-UjS-ab2DlMfOtJ-0pdB-dTm37Kv96CTMT40duw4es6KM8kAqOkxYNBjTD32EHYFKy6LyPJjEbRD9GO3o0eUdhb7uU6tJzvp14nOv6aiOWgkUriu_QtwvHq-8WiJBB57P7uGT2RKk6bKG5UrnaBFB9UTgewwORhgXBbgR-5bTjx8zvVB8AgwxGW-Gvg1UL_JHFz1B11b9wQnxbmXt2M3Bf8dDK340cY4Q6RLUexzlfRVu9-rrK1lA6JuWlErpTWAFkdZHg6tMYnTNbhYLbRKOcKVrynoTlwmtpJCSlFkeXaUSmRpXZaqzYwWZVmao8rYXsCgrUuXPpY9JqFaW6rnLpLT2Yjx3Ul82W4EWMtRfj1j70PVw9U69yNZS1dr678AIa40LQ">