summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-11-15 04:24:58 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-11-15 04:24:58 +0000
commitce587f5eb96477e4c357e49b7d55aa175485b367 (patch)
tree13772f05719330d7fbed0723840e40e106203120 /clang/lib/Sema/SemaDecl.cpp
parent6519801a6e773eda9e64a7e573ed062965f1e6c5 (diff)
downloadbcm5719-llvm-ce587f5eb96477e4c357e49b7d55aa175485b367.tar.gz
bcm5719-llvm-ce587f5eb96477e4c357e49b7d55aa175485b367.zip
When we hit a #include directive that maps to a module import, emit a token
representing the module import rather than making the module immediately visible. This serves two goals: * It avoids making declarations in the module visible prematurely, if we walk past the #include during a tentative parse, for instance, and * It gives a diagnostic (although, admittedly, not a very nice one) if a header with a corresponding module is included anywhere other than at the top level. llvm-svn: 194782
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 211e8587d16..f5507791e7f 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -12913,6 +12913,12 @@ DeclResult Sema::ActOnModuleImport(SourceLocation AtLoc,
return Import;
}
+void Sema::ActOnModuleInclude(SourceLocation DirectiveLoc, Module *Mod) {
+ // FIXME: Should we synthesize an ImportDecl here?
+ PP.getModuleLoader().makeModuleVisible(Mod, Module::AllVisible, DirectiveLoc,
+ /*Complain=*/true);
+}
+
void Sema::createImplicitModuleImport(SourceLocation Loc, Module *Mod) {
// Create the implicit import declaration.
TranslationUnitDecl *TU = getASTContext().getTranslationUnitDecl();
OpenPOWER on IntegriCloud