[clang] [clang][modules] Allow module maps with textual headers to be non-affecting (PR #89441)
Sam McCall via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 23 03:00:49 PDT 2024
sam-mccall wrote:
> @sam-mccall That makes sense.
>
> I think one option we have here is to consider all module maps describing a textual header that got included as affecting. I'm concerned that a long chain of textual header includes might again be problematic.
Yeah, that's the option that comes closest to preserving previous behavior, and the one that I think most precisely captures the "affecting" semantics - including the module maps that were required for the compilation.
I've sent a version of this as https://github.com/llvm/llvm-project/pull/89729, based on your first commit here.
> For this particular test, we only need to consider the module maps describing `use`d modules affecting to keep `-fmodules-strict-decluse` happy, which seems like a more precise solution.
I'm not sure this is correct in general: if A uses B which uses C, and both B and C are textual, then C.modulemap affects the compilation of A.pcm but won't be picked up.
https://github.com/llvm/llvm-project/pull/89441
More information about the cfe-commits
mailing list