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

    <tr>
        <th>Summary</th>
        <td>
            [C++20] [Modules] False Negative ODR checks for inline functions definitions attached to named module
        </td>
    </tr>

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

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

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

<pre>
    Now we'll accept the following reproducer:

```
// mod1.cppm
export module mod1;
export void func() {}

// mod2.cppm
export module mod2;
export void func() {}

// test.cc
import mod1;
import mod2;
void test() {
 func():
}
```

This is not standard conforming. Since http://eel.is/c++draft/basic.def.odr#14.3 says such definition can't be attached to named modules clearly.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycksFunDAQhp9muIyCvAbDcuDQzYpbU6ntoVdjD-DW2NQ22ebtK9gkm1RqD5WQkWfkb2b-f2SMZnRELYgTiHMm1zT50N5Pq3Q_zbe1yXqvn9oHf8ELAa-tRakULQnTRDh4a_3FuBEDLcHrVVGA4gOwM7CXs2LP3_XKO-Adzl4fcrUs8zVKvxYf0hZdLe1JKE7vUo_eaBxWp4AfgTcI9Qnq87tCr2T-LzL_b3KimHKlrjEzv3Bvrd5ityI7fXv5hr4n3pS8KfZa9w_R9vPrZCKaiM4njEk6LYNG5d3gw2zcmOMX4xThlNKyEfemiWxuIvBOAT8BP-kghwS862U0Ktc05F4H4MWhzAuM8iliXNWEmgbjTDLeoZIOeJ2wJ5QpSTWRxuTRyZn0s6wRlSUZ7FOe6bbQTdHIjNpDzSrBqrKssqlVVU91eZR6GMqjamSvBuoPTSX68lCLospMyxkv2YE3TBQlq_KiIFZoIQbBBRXHBkpGszQ2t_Zxzn0YMxPjSm3d1Mcys7InG_cl5tzRBfckcL7tdGi3N3f9OkYomTUxxRslmWT37b-_KsQZiDOCOH28zrbdOmkj4QONMplHwk_nz6gmUj8iDj6gcdY42v3cFItv1It_1Sxbg203q-KrV6NJ09rnys_Au62_59_dEvx3Uptt-1SbnfvUvwMAAP__HzwlCA">