forked from OSchip/llvm-project
[Modules] Add imported modules to the output of -module-file-info
Fix a bug in the deserialization of IMPORTS section and allow for imported modules to also be printed with -module-file-info. rdar://problem/43867753 llvm-svn: 341902
This commit is contained in:
parent
90edc98c58
commit
6fc8a564cf
|
@ -232,7 +232,7 @@ public:
|
|||
|
||||
/// If needsImportVisitation returns \c true, this is called for each
|
||||
/// AST file imported by this AST file.
|
||||
virtual void visitImport(StringRef Filename) {}
|
||||
virtual void visitImport(StringRef ModuleName, StringRef Filename) {}
|
||||
|
||||
/// Indicates that a particular module file extension has been read.
|
||||
virtual void readModuleFileExtension(
|
||||
|
|
|
@ -601,6 +601,17 @@ namespace {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Returns true if this \c ASTReaderListener wants to receive the
|
||||
/// imports of the AST file via \c visitImport, false otherwise.
|
||||
bool needsImportVisitation() const override { return true; }
|
||||
|
||||
/// If needsImportVisitation returns \c true, this is called for each
|
||||
/// AST file imported by this AST file.
|
||||
void visitImport(StringRef ModuleName, StringRef Filename) override {
|
||||
Out.indent(2) << "Imports module '" << ModuleName
|
||||
<< "': " << Filename.str() << "\n";
|
||||
}
|
||||
#undef DUMP_BOOLEAN
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4868,11 +4868,11 @@ bool ASTReader::readASTFileControlBlock(
|
|||
unsigned Idx = 0, N = Record.size();
|
||||
while (Idx < N) {
|
||||
// Read information about the AST file.
|
||||
Idx += 5; // ImportLoc, Size, ModTime, Signature
|
||||
SkipString(Record, Idx); // Module name; FIXME: pass to listener?
|
||||
Idx += 1+1+1+1+5; // Kind, ImportLoc, Size, ModTime, Signature
|
||||
std::string ModuleName = ReadString(Record, Idx);
|
||||
std::string Filename = ReadString(Record, Idx);
|
||||
ResolveImportedPath(Filename, ModuleDir);
|
||||
Listener.visitImport(Filename);
|
||||
Listener.visitImport(ModuleName, Filename);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
// CHECK: Module name: DependsOnModule
|
||||
// CHECK: Module map file: {{.*}}DependsOnModule.framework{{[/\\]}}module.map
|
||||
// CHECK: Imports module 'Module': {{.*}}Module.pcm
|
||||
|
||||
// CHECK: Language options:
|
||||
// CHECK: C99: Yes
|
||||
|
|
Loading…
Reference in New Issue