Skip to content

Commit

Permalink
[modules] Print input files when -module-file-info file switch is pas…
Browse files Browse the repository at this point in the history
…sed.

This patch improves traceability of duplicated header files which end
up in multiple pcms.

Differential Revision: https://reviews.llvm.org/D47118

llvm-svn: 337353
  • Loading branch information
vgvassilev committed Jul 18, 2018
1 parent 17c0f72 commit 33eb729
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
39 changes: 39 additions & 0 deletions clang/lib/Frontend/FrontendActions.cpp
Expand Up @@ -560,6 +560,45 @@ namespace {

Out << "\n";
}

/// Tells the \c ASTReaderListener that we want to receive the
/// input files of the AST file via \c visitInputFile.
bool needsInputFileVisitation() override { return true; }

/// Tells the \c ASTReaderListener that we want to receive the
/// input files of the AST file via \c visitInputFile.
bool needsSystemInputFileVisitation() override { return true; }

/// Indicates that the AST file contains particular input file.
///
/// \returns true to continue receiving the next input file, false to stop.
bool visitInputFile(StringRef Filename, bool isSystem,
bool isOverridden, bool isExplicitModule) override {

Out.indent(2) << "Input file: " << Filename;

if (isSystem || isOverridden || isExplicitModule) {
Out << " [";
if (isSystem) {
Out << "System";
if (isOverridden || isExplicitModule)
Out << ", ";
}
if (isOverridden) {
Out << "Overridden";
if (isExplicitModule)
Out << ", ";
}
if (isExplicitModule)
Out << "ExplicitModule";

Out << "]";
}

Out << "\n";

return true;
}
#undef DUMP_BOOLEAN
};
}
Expand Down
10 changes: 10 additions & 0 deletions clang/test/Modules/module_file_info.m
Expand Up @@ -43,6 +43,16 @@
// CHECK: Predefined macros:
// CHECK: -DBLARG
// CHECK: -DWIBBLE=WOBBLE
// CHECK: Input file: {{.*}}DependsOnModulePrivate.h
// CHECK-NEXT: Input file: {{.*}}Other.h
// CHECK-NEXT: Input file: {{.*}}SubFramework.h
// CHECK-NEXT: Input file: {{.*}}not_coroutines.h
// CHECK-NEXT: Input file: {{.*}}not_cxx.h
// CHECK-NEXT: Input file: {{.*}}other.h
// CHECK-NEXT: Input file: {{.*}}module.map
// CHECK-NEXT: Input file: {{.*}}DependsOnModule.h
// CHECK-NEXT: Input file: {{.*}}module_private.map
// CHECK-NEXT: Input file: {{.*}}module.map

// CHECK: Diagnostic options:
// CHECK: IgnoreWarnings: Yes
Expand Down

0 comments on commit 33eb729

Please sign in to comment.