diff options
author | Ben Langmuir <blangmuir@apple.com> | 2014-04-14 22:12:44 +0000 |
---|---|---|
committer | Ben Langmuir <blangmuir@apple.com> | 2014-04-14 22:12:44 +0000 |
commit | 4f5212a60e776da7f99f14b1df5b68baace80e29 (patch) | |
tree | 616c038ba762b31ca4063c405d40e08334e6792f | |
parent | 692d198ede45799f4c0fab539e5ae7d6d0381ae0 (diff) | |
download | bcm5719-llvm-4f5212a60e776da7f99f14b1df5b68baace80e29.tar.gz bcm5719-llvm-4f5212a60e776da7f99f14b1df5b68baace80e29.zip |
Add module name and module map file to -module-file-info
llvm-svn: 206217
-rw-r--r-- | clang/include/clang/Serialization/ASTReader.h | 5 | ||||
-rw-r--r-- | clang/lib/Frontend/FrontendActions.cpp | 7 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 19 | ||||
-rw-r--r-- | clang/test/Modules/module_file_info.m | 3 |
4 files changed, 34 insertions, 0 deletions
diff --git a/clang/include/clang/Serialization/ASTReader.h b/clang/include/clang/Serialization/ASTReader.h index 1f27e384ae8..ffd72752557 100644 --- a/clang/include/clang/Serialization/ASTReader.h +++ b/clang/include/clang/Serialization/ASTReader.h @@ -109,6 +109,9 @@ public: return FullVersion != getClangFullRepositoryVersion(); } + virtual void ReadModuleName(StringRef ModuleName) {} + virtual void ReadModuleMapFile(StringRef ModuleMapPath) {} + /// \brief Receives the language options. /// /// \returns true to indicate the options are invalid or false otherwise. @@ -203,6 +206,8 @@ public: : First(First), Second(Second) { } bool ReadFullVersionInformation(StringRef FullVersion) override; + void ReadModuleName(StringRef ModuleName) override; + void ReadModuleMapFile(StringRef ModuleMapPath) override; bool ReadLanguageOptions(const LangOptions &LangOpts, bool Complain) override; bool ReadTargetOptions(const TargetOptions &TargetOpts, bool Complain) override; diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index bbd2dff46c0..1092c56ed59 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -416,6 +416,13 @@ namespace { return ASTReaderListener::ReadFullVersionInformation(FullVersion); } + void ReadModuleName(StringRef ModuleName) override { + Out.indent(2) << "Module name: " << ModuleName << "\n"; + } + void ReadModuleMapFile(StringRef ModuleMapPath) override { + Out.indent(2) << "Module map file: " << ModuleMapPath << "\n"; + } + bool ReadLanguageOptions(const LangOptions &LangOpts, bool Complain) override { Out.indent(2) << "Language options:\n"; diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index ea3b8b6cd1d..78bf151c63f 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -70,6 +70,14 @@ ChainedASTReaderListener::ReadFullVersionInformation(StringRef FullVersion) { return First->ReadFullVersionInformation(FullVersion) || Second->ReadFullVersionInformation(FullVersion); } +void ChainedASTReaderListener::ReadModuleName(StringRef ModuleName) { + First->ReadModuleName(ModuleName); + Second->ReadModuleName(ModuleName); +} +void ChainedASTReaderListener::ReadModuleMapFile(StringRef ModuleMapPath) { + First->ReadModuleMapFile(ModuleMapPath); + Second->ReadModuleMapFile(ModuleMapPath); +} bool ChainedASTReaderListener::ReadLanguageOptions(const LangOptions &LangOpts, bool Complain) { return First->ReadLanguageOptions(LangOpts, Complain) || @@ -2313,6 +2321,8 @@ ASTReader::ReadControlBlock(ModuleFile &F, case MODULE_NAME: F.ModuleName = Blob; + if (Listener) + Listener->ReadModuleName(F.ModuleName); break; case MODULE_MAP_FILE: @@ -2347,6 +2357,9 @@ ASTReader::ReadControlBlock(ModuleFile &F, return OutOfDate; } } + + if (Listener) + Listener->ReadModuleMapFile(F.ModuleMapPath); break; case INPUT_FILE_OFFSETS: @@ -3952,6 +3965,12 @@ bool ASTReader::readASTFileControlBlock(StringRef Filename, break; } + case MODULE_NAME: + Listener.ReadModuleName(Blob); + break; + case MODULE_MAP_FILE: + Listener.ReadModuleMapFile(Blob); + break; case LANGUAGE_OPTIONS: if (ParseLanguageOptions(Record, false, Listener)) return true; diff --git a/clang/test/Modules/module_file_info.m b/clang/test/Modules/module_file_info.m index f9a35babd05..9f1ff2221b7 100644 --- a/clang/test/Modules/module_file_info.m +++ b/clang/test/Modules/module_file_info.m @@ -7,6 +7,9 @@ // CHECK: Generated by this Clang: +// CHECK: Module name: DependsOnModule +// CHECK: Module map file: {{.*}}DependsOnModule.framework{{[/\\]}}module.map + // CHECK: Language options: // CHECK: C99: Yes // CHECK: Objective-C 1: Yes |