benlangmuir added a comment.

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


Two different projects (or targets, or whatever), but they don't even have to 
build at the same time.  They just have to share a cache. Suppose you have a 
project A with a PCH and -fmodules-disable-diagnostic-validation.  Suppose you 
have another project B that does not use this flag, and does not have a PCH.  
With this patch, A and B can share a module cache.

A builds a PCH that depends on some module X -- OK
B builds with -Werror.  Rebuilds X.pcm -- OK

Now suppose we build A again because of some change:  it can't build because 
X.pcm changed, but we haven't rebuilt the PCH.


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