<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">