manmanren added a comment.

In https://reviews.llvm.org/D22773#495403, @benlangmuir wrote:

> We need to add this option to the module hash (see getModuleHash - we already 
> add a bunch of other HSOpts there).  Otherwise the pcm could still be 
> rewritten by a compilation that doesn't use a PCH, and then it would be out 
> of date because of the timestamp instead of the diagnostic options.


I was thinking that for a project using PCH+Module, all clang invocations will 
be using -fmodules-disable-diagnostic-validation, so if only the diagnostic 
options change, they will hash to the same pcm file but the compiler will not 
regenerate and overwrite the existing pcm file. So when we load the pch, the 
time stamp etc will match and the compiler will not throw out-of-date error.

We can definitely hash the option HSOpts.ModulesValidateDiagnosticOptions in 
getModuleHash. But I don't quite get the reason you give here :)
the pcm could still be rewritten by a compilation that doesn't use a PCH, and 
then it would be out of date because of the timestamp instead of the diagnostic 
options

"a compilation that doesn't use a PCH", is that a different project? And we 
have two projects building in parallel? Just to make sure I understand.

Thanks!
Manman


https://reviews.llvm.org/D22773



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to