diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-11-30 04:26:53 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-11-30 04:26:53 +0000 |
commit | b514c792821a8f053027d88444e13bfaa8efef76 (patch) | |
tree | 123cd461e4098e78e066dcef4281686d30674fa5 /include | |
parent | 49009ec701feb3009450e57e40c656e2ad7c1f41 (diff) |
Teach the preprocessor how to handle module import declarations that
involve submodules (e.g., importing std.vector), rather than always
importing the top-level module.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145478 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Frontend/CompilerInstance.h | 8 | ||||
-rw-r--r-- | include/clang/Lex/Preprocessor.h | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/include/clang/Frontend/CompilerInstance.h b/include/clang/Frontend/CompilerInstance.h index 90de3138a4..09b27e14df 100644 --- a/include/clang/Frontend/CompilerInstance.h +++ b/include/clang/Frontend/CompilerInstance.h @@ -109,6 +109,14 @@ class CompilerInstance : public ModuleLoader { /// along with the module map llvm::DenseMap<const IdentifierInfo *, KnownModule> KnownModules; + /// \brief The location of the module-import keyword for the last module + /// import. + SourceLocation LastModuleImportLoc; + + /// \brief The result of the last module import. + /// + KnownModule LastModuleImportResult; + /// \brief Holds information about the output file. /// /// If TempFilename is not empty we must rename it to Filename at the end. diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index cf77824120..671d6ae986 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -167,6 +167,14 @@ class Preprocessor : public llvm::RefCountedBase<Preprocessor> { /// lexed, if any. SourceLocation ModuleImportLoc; + /// \brief The module import path that we're currently processing. + llvm::SmallVector<std::pair<IdentifierInfo *, SourceLocation>, 2> + ModuleImportPath; + + /// \brief Whether the module import expectes an identifier next. Otherwise, + /// it expects a '.' or ';'. + bool ModuleImportExpectsIdentifier; + /// \brief The source location of the currently-active /// #pragma clang arc_cf_code_audited begin. SourceLocation PragmaARCCFCodeAuditedLoc; |