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

    <tr>
        <th>Summary</th>
        <td>
            C++20 module with base class and subclass in partitions causes duplicate symbol errors
        </td>
    </tr>

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

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

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

<pre>
    Here's the example code. There is a base class in one partition, a subclass in another. I think it should work.

https://godbolt.org/z/W4nWj6G7E

The error is currently:

```console
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/13.0.1/../../../../x86_64-linux-gnu/bin/ld: 
CMakeFiles/mod_bug6.dir/Base.cc.o:(.rodata+0x0): multiple definition of `_ZTSW3Mod4Base'; 
CMakeFiles/mod_bug6.dir/main.cc.o:(.rodata+0x0): first defined here
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```

On my laptop it's easier to read:

```console
duplicate symbol 'typeinfo name for Base@Mod' in:
    ModBug6/CMakeFiles/mod_bug6.dir/main.cc.o
 ModBug6/CMakeFiles/mod_bug6.dir/Base.cc.o
duplicate symbol 'typeinfo for Base@Mod' in:
    ModBug6/CMakeFiles/mod_bug6.dir/main.cc.o
 ModBug6/CMakeFiles/mod_bug6.dir/Base.cc.o
ld: 2 duplicate symbols for architecture x86_64
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVE1v4zYQ_TX0ZWBBomTJOugQZ6u2h6CHBgjQSzAiRxY3FCnwI7H76wtKbdbIFtgcFyBog-S8eZp589B7dTZEHTuc2OHLDmOYrOucUS9oJLndYOW1-40cMd54CBMBXXBeNIGwkjJ4nMgRKA8IA3oCodF7UAasIVjQBRWUNYzfA4KPw_s1Ghsmchn8DmFS5gVUAD_ZqCW8WfeSsfwLy--2fQph8ay8Y7xnvD9bOVgdMuvOjPd_M94_Vebpa_1r88tt0GOi6px1iZyIzpEJ-ppQbh6xOt-WsMZbTf-e8t4ugfFe2HlRmtyeLou2jlxKL8TeG1z8ZNMTrYbtkPH-cqyf62qvlYmX_dlExvuizPKsYLzPsu-3_3k_KJNAJSvvYCNz_4Av1CtNnvF-tvJ5iOc6kypxOaGnTIjMrsU5Zs5KDMj4Kb_kjLcJZI46qNQuSaMyazPAjsDq_Pmvxz-fygcrqwTDeMPK0ydyzqjMD3KOyvmwJSQJSSAbrNBozoyf0irvtu6kP1qZF3Ig7DyjkTCi0iThTYUJ6KLCqjQogPFj9AT7VwgWPBEo82oFbvpqPzT0tst_GJivoHEJdgEVViUTekUuITlC-SlZyLhoJTAQ-Os8WA2MN-G6kDKjBYMzwWgdrMWs8gcrGW9AmXdoAIAHK0_xXDPef67EW-Dnor6J4cdsfyaim9g5fCTsV5boxKQCiRAdwTYwH3q0k10p27LFHXVFfczrmhdHvpu6AxZUNLJp8YCVaJvmgFiORXE81i2VbblTHc95mVf5IedlzXl2wFYcuRz5UB1GWQlW5TSj0pnWr3MynJ3yPlJXF22V7zQOpP3qnJwbeoP1knGejNR1KWY_xLNnVa6VD_4bSlBBU3e_jQLPYbYyatoUf-OiaRhuPfPdTj0IjJ78dzXbZsrvotPdB9dUYYpDJuyc_EW__vezX5z9SiJZ2Uo_9Wv9vH8CAAD__wUL6Pw">