From 68ccbe01b0fdb6b2ce3893d851ce225cd869cf0b Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Fri, 14 Mar 2014 02:26:31 +0000 Subject: [Modules] Make sure that the synthesized file "__inferred_module.map" doesn't show up as dependency of a module file. Follow-up for rdar://15459210 llvm-svn: 203882 --- clang/lib/Serialization/ASTReader.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'clang/lib/Serialization') diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 595edfc4c5b..cc425c5695a 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -119,9 +119,10 @@ bool ChainedASTReaderListener::needsSystemInputFileVisitation() { Second->needsSystemInputFileVisitation(); } bool ChainedASTReaderListener::visitInputFile(StringRef Filename, - bool isSystem) { - return First->visitInputFile(Filename, isSystem) || - Second->visitInputFile(Filename, isSystem); + bool isSystem, + bool isOverridden) { + return First->visitInputFile(Filename, isSystem, isOverridden) || + Second->visitInputFile(Filename, isSystem, isOverridden); } //===----------------------------------------------------------------------===// @@ -2120,8 +2121,11 @@ ASTReader::ReadControlBlock(ModuleFile &F, if (Listener && Listener->needsInputFileVisitation()) { unsigned N = Listener->needsSystemInputFileVisitation() ? NumInputs : NumUserInputs; - for (unsigned I = 0; I < N; ++I) - Listener->visitInputFile(getInputFileName(F, I+1), I >= NumUserInputs); + for (unsigned I = 0; I < N; ++I) { + bool IsSystem = I >= NumUserInputs; + InputFileInfo FI = readInputFileInfo(F, I+1); + Listener->visitInputFile(FI.Filename, IsSystem, FI.Overridden); + } } return Success; @@ -3932,7 +3936,8 @@ bool ASTReader::readASTFileControlBlock(StringRef Filename, bool shouldContinue = false; switch ((InputFileRecordTypes)Cursor.readRecord(Code, Record, &Blob)) { case INPUT_FILE: - shouldContinue = Listener.visitInputFile(Blob, isSystemFile); + bool Overridden = static_cast(Record[3]); + shouldContinue = Listener.visitInputFile(Blob, isSystemFile, Overridden); break; } if (!shouldContinue) -- cgit v1.2.3