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

    <tr>
        <th>Summary</th>
        <td>
            Implementing friend operator with two exclusive requires clauses but same name of requirement causes "error: redefinition of 'operator<<'"
        </td>
    </tr>

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

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

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

<pre>
    This does not compile with clang 18 but it does with clang 17:
https://godbolt.org/z/orMfTfxMd

This would compile with both compiler as it uses a different name for the requirement:
https://godbolt.org/z/Mjxq54abb

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMkc-OpCAQxp8GL2Q6WmqrBw69OzHZQ9_mBUAKZYLQA-V07z79Bt0_s3uaxEigPviqfp9Myc4eUbD2C2ufC7nREqKYk1wlUaGC_i5eFpu4Dpi4D8SnsN6sQ363tPDJST_zqudqI27pUH2sdKy-sPKZlZeF6JbyDkYG4xy0Co5OIc4Mxh8MxhCv5sU8rvqQH__d-h42p__1VSFbHCeRy5S9t4SJS66tMRjRE_dyRW5C5LQgj_i22Ygrevp0S9fXx1vbSKUOeaFFrYd6kAWKqqvqoa37qikWMU3YT7JVUPbY1Vqfz2WtJ90CtFBL6AoroISmbKCpyurcNqdzhe3ZKFNpAzD0wJoSV2ndybn3NXdQ2JQ2FP0wlEPhpEKX9ogAPN75XmQAObEo8p0ntc2JNaWzidLfV8iSQ_Ftvbl9cutnbqJFr3m4YZQU4sGT7oHjY3Jbsu9_WKUc4k41p5syzR1pMB9p8unQMACMMURWX3hEjcZ6Szb4LGfQ_fZj9df8QccAii068V8IlpZNnaawMhjzGL-Wp1sMrzgRg3EfPjEYdzg_AwAA__9De-hS">