diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Lex/ModuleMap.cpp | 22 | ||||
| -rw-r--r-- | clang/lib/Lex/PPDirectives.cpp | 2 |
2 files changed, 3 insertions, 21 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index f4dfa12854a..3ce0def1d1c 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/lib/Lex/ModuleMap.cpp @@ -1066,7 +1066,7 @@ void ModuleMapParser::skipUntil(MMToken::TokenKind K) { bool ModuleMapParser::parseModuleId(ModuleId &Id) { Id.clear(); do { - if (Tok.is(MMToken::Identifier)) { + if (Tok.is(MMToken::Identifier) || Tok.is(MMToken::StringLiteral)) { Id.push_back(std::make_pair(Tok.getString(), Tok.getLocation())); consumeToken(); } else { @@ -1687,25 +1687,7 @@ void ModuleMapParser::parseUseDecl() { consumeToken(); // Parse the module-id. ModuleId ParsedModuleId; - - do { - if (Tok.is(MMToken::Identifier)) { - ParsedModuleId.push_back( - std::make_pair(Tok.getString(), Tok.getLocation())); - consumeToken(); - - if (Tok.is(MMToken::Period)) { - consumeToken(); - continue; - } - - break; - } - - Diags.Report(Tok.getLocation(), diag::err_mmap_module_id); - HadError = true; - return; - } while (true); + parseModuleId(ParsedModuleId); ActiveModule->UnresolvedDirectUses.push_back(ParsedModuleId); } diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index 7d4c788f660..70c32c3dc69 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -610,7 +610,7 @@ void Preprocessor::verifyModuleInclude(SourceLocation FilenameLoc, if (RequestingModule && getLangOpts().ModulesDeclUse && violatesUseDeclarations(RequestingModule, RequestedModule.getModule())) Diag(FilenameLoc, diag::error_undeclared_use_of_module) - << Filename; + << RequestingModule->getFullModuleName() << Filename; } const FileEntry *Preprocessor::LookupFile( |

