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

    <tr>
        <th>Summary</th>
        <td>
            [C++20] [Modules] Workaround for builtin initializers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    A.cppm:
```C++
export module A;

export namespace A {
    void foo();
}
```

A.cpp:
```C++
module A;

namespace A {
    void foo() {}
}
```

C.cpp:
```C++
import A;

int main() {
 A::foo();
}
```

Build:
```
clang++ -std=c++2b A.cppm --precompile -o A.pcm
clang++ -std=c++2b -fmodule-file=A=A.pcm -c A.cpp -o A.o
clang++ -std=c++2b C.cpp -fmodule-file=A=A.pcm A.o
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk0GvnCAQxz_NeCEaBFl3Dx7cNXvruWcEdKcFMYAvbT99o273vb7mtdsEYwbm_58fA8gYcZyMaUCcQXSZXNLNh8ZPxi4Op6z3-nvTFmqeHfAWaAe0hQPdxwXYeR3brPk2-5CI83qxhrTA7_O_rU7SmThLZUhLoL5nEELIi0dNBu-BHYGdXsV1967mW9ON6x9YH_A8CbKtPRj-CnN5Agbd1oX3MDgl4iROb2ruPO3qx9v_7ct5Qav_RNlDZeU07lAkj0kD79Qesp7sJ03yfA5GeTejNST3pC1m5Z6Q58Pe7nxAa4B37fqtWpKr3Xt38094Xfb0Dx0fLo_9Zbrh-sRPMjNNeTjysqaiqrJbI09ScFVrJoQeaK1LyflQm0pXQnN6KDNsGGWcClpRzhirCtkfOTVqGEomBJccKmqcRFtY--IKH8YMY1xMc2CiKjMre2PjrycUmjUp75cxQkUtxhRfZQmT3R7b_V4wCqIjIM6ftm3GNfrsw1cZ_DKtFzGQfkGbcCI4YUJp8YcJMVuCbW4pzXE9ZnYFdh0x3Za-UN4Bu6717r98Dv6LUQnYdWOOwK4b9s8AAAD__2JsFXU">