Prevent nonrecoverable module-out-of-date errors in projects that mix
PCH and clang modules.

This patch introduces a NeededByPCHOrCompilationUsesPCH language
option which causes clang modules imported by PCH which goes into the
module hash, thus isolating them from rebuilds triggered by other
clang modules.  This patch further disables module validation for
modules imported by PCH, since there is no mechanism in clang to
rebuild ou-tof-date modules when they were imported by a PCH.

6 files changed