<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62843>62843</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[C++20] [Modules] `-fmodule-file` vanishes when building module stub objects
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
aaronmondal
</td>
</tr>
</table>
<pre>
Flags like `-fmodule-file=A:part=part.pcm` vanish when we are building the object file from the precompiled BMI.
```bash
echo "export module A;" > a.cppm
clang++ a.cppm -v -std=c++20 \
--precompile -o a.pcm
clang++ a.pcm -v -std=c++20 -c \
-o a.interface.o \
-fmodule-file=nonexistent=ThisDoesntShowOnTheCommandLine.pcm
```
This means that all such compilations trigger `-Wread-modules-implicitly` when an interface depends on some other module.
cc @ChuanqiXu9
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U02PmzAQ_TXDZQQCE0hy4JCPRqrUVQ9dqb0ae8BujU1ts9n99xWQ3U1XrRTFwsM8vQ8eD0H3lqiB6gjVOeFTVM43nHtnB2clN0nr5EtzMbwPaPQvQqjztBucnAylnTYE5fkA5WHkPkJ5no9sFAPUOT5xq4PCqyKLV0LuCdtJG6ltj1ERuvYniYgzCHbeDcvl6Em4YdSGJB4fPmeQnyE_3P7rfP21PKj1ioRyCIzR8-h8xJUXHqA8AmMI5SfkmRjH4R5GGG57YEdgx9sU0ydMQ5RQnsU6YDlCdVrfR0RM03dimDrki8j_go7i35ip-AA7I2kbyXdcUObuph9Nts7Ssw6R7Ozzo9Lh7CjY-E2561f7qOjkhoFb-UVbuiP3atk913kZB-I2YFQ8IjcGwyQUrgJ51G4eed335JfAv3viMl0JhVQPo9FCR_Myx7zkyy2-yUBJI1kZ0FkMbiB0UZG_ZfNXoEIgbPKTmrj9rX9Me0xkU8p9uecJNUW922zzkhW7RDVF27XbXZHLqqvaTuwF323b_ZaobhnJWiS6YTkr84oVrMjrapfVUnbFtmP1vip2ZVfAJqeBa5MZ8zRkzveJDmGipma7TZkY3pIJSw0Ys3TFZQiMza3wzbyTtlMfYJMbHWJ4R4k6mqU_p9eUoTojVMeH1a3l6WNn3tpBYfXvrRi3LzjEqb0VJCSTN42KcQxQHoBdgF16HdXUZsINwC4zlduRjt7NO8Aui4AA7LII_BMAAP__UUc5NQ">