diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-10-24 23:41:50 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-10-24 23:41:50 +0000 |
commit | 4c0c7e86645dfa1719d17d70e009ab49347aba62 (patch) | |
tree | a418e94002d9c7a7c6d7352b1cff125c2b256072 /lib/Frontend/FrontendAction.cpp | |
parent | 3584972866f39d42aa4029586278022d89451bd9 (diff) |
Teach the PCH validator to check the preprocessor options, especially
the macros that are #define'd or #undef'd on the command line. This
checking happens much earlier than the current macro-definition
checking and is far cleaner, because it does a direct comparison
rather than a diff of the predefines buffers. Moreover, it allows us
to use the result of this check to skip over PCH files within a
directory that have non-matching -D's or -U's on the command
line. Finally, it improves the diagnostics a bit for mismatches,
fixing <rdar://problem/8612222>.
The old predefines-buffer diff'ing will go away in a subsequent commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166641 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/FrontendAction.cpp')
-rw-r--r-- | lib/Frontend/FrontendAction.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Frontend/FrontendAction.cpp b/lib/Frontend/FrontendAction.cpp index b7b93a9178..fa1655db79 100644 --- a/lib/Frontend/FrontendAction.cpp +++ b/lib/Frontend/FrontendAction.cpp @@ -243,7 +243,8 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI, // Check whether this is an acceptable AST file. if (ASTReader::isAcceptableASTFile(Dir->path(), FileMgr, CI.getLangOpts(), - CI.getTargetOpts())) { + CI.getTargetOpts(), + CI.getPreprocessorOpts())) { for (unsigned I = 0, N = PPOpts.Includes.size(); I != N; ++I) { if (PPOpts.Includes[I] == PPOpts.ImplicitPCHInclude) { PPOpts.Includes[I] = Dir->path(); |