summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Langmuir <blangmuir@apple.com>2014-04-14 22:12:44 +0000
committerBen Langmuir <blangmuir@apple.com>2014-04-14 22:12:44 +0000
commit4f5212a60e776da7f99f14b1df5b68baace80e29 (patch)
tree616c038ba762b31ca4063c405d40e08334e6792f
parent692d198ede45799f4c0fab539e5ae7d6d0381ae0 (diff)
downloadbcm5719-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.h5
-rw-r--r--clang/lib/Frontend/FrontendActions.cpp7
-rw-r--r--clang/lib/Serialization/ASTReader.cpp19
-rw-r--r--clang/test/Modules/module_file_info.m3
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
OpenPOWER on IntegriCloud