[cfe-dev] Changing module maps

Richard Smith richard at metafoo.co.uk
Wed May 20 18:14:18 PDT 2015


On Wed, May 20, 2015 at 5:59 PM, Thompson, John <
John_Thompson at playstation.sony.com> wrote:

>  Hi,
>
>
>
> I’ve experienced a few situations where I’ve been changing a module map
> during development, or passing module maps to others to try, who then get
> mysterious warnings or errors, such as:
>
>
>
> test.cpp:2:2: warning: missing submodule
> '_Builtin_intrinsics.intel.x86intrin'
>
>       [-Wincomplete-umbrella]
>
> #include <x86intrin.h>
>
> ^       ~
>
> 1 warning generated.
>
>
>
> Sometimes clang detects it, and issues a relevant warning.  Other times it
> does not.  (Perhaps due to a time tag being earlier?)  The recovery is to
> delete the module cache manually.
>
>
>
> Is there something we could do to better detect a changed module map, and
> perhaps even better, also automatically delete the prior module cache to
> avoid potential problems?  Checksum/CRC the module map?  Use size and file
> time?
>

We do these things, but the checks are turned off by default for system
modules (to avoid stat'ing all the system headers on every compile). I
think there's a flag to turn on the checks even for system modules,
-fmodules-validate-system-headers I think?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150520/204b8383/attachment.html>


More information about the cfe-dev mailing list