[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
commita3efd892fa57b72c2a0875a2fc9033b57f90d696
authorJan Svoboda <jan_svoboda@apple.com>
Wed, 1 Nov 2023 19:00:54 +0000 (1 12:00 -0700)
committerGitHub <noreply@github.com>
Wed, 1 Nov 2023 19:00:54 +0000 (1 12:00 -0700)
treefb018ce4bb0b64c90ee3a6356f8e907b3463b7fd
parent243588df15ed136b52ca62315c1e18b045cdf915
[clang][modules] Don't prevent translation of FW_Private includes when explicitly building FW (#70714)

We prevent translating `#include <FW/PrivateHeader.h>` into an import of
FW_Private when compiling the implementation of FW or FW_Private. This
is specified via `-fmodule-name=` on the TU command line (used to be
`-fmodule-implementation-of`).

This logic is supposed to only kick in when imported directly from a TU,
but it currently also kicks in when compiling the public FW module
explicitly (since it also has `-fmodule-name=` on the command line).

This patch makes sure this logic only kicks in for the case that used to
be `-fmodule-implementation-of` (for the TU), and not for all
`-fmodule-name=` cases (especially for the explicit compile of a
module).

rdar://101051277; related: rdar://37500098&38434694
clang/lib/Basic/Module.cpp
clang/test/ClangScanDeps/modules-priv-fw-from-pub.m [new file with mode: 0644]