diff options
| author | Douglas Gregor <dgregor@apple.com> | 2012-10-15 16:45:32 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2012-10-15 16:45:32 +0000 |
| commit | bc10b9fbc5b00bcef08cbabecf1522eedf4f818f (patch) | |
| tree | 57f43c36e88dcb11200ce5d20cf628496212514d /clang/lib/Lex | |
| parent | 4bb926d91dbd9842c20dbeb0d6abea7dee36e1fa (diff) | |
| download | bcm5719-llvm-bc10b9fbc5b00bcef08cbabecf1522eedf4f818f.tar.gz bcm5719-llvm-bc10b9fbc5b00bcef08cbabecf1522eedf4f818f.zip | |
Teach TargetInfo to hold on to the TargetOptions with which it was
created.
llvm-svn: 165943
Diffstat (limited to 'clang/lib/Lex')
| -rw-r--r-- | clang/lib/Lex/ModuleMap.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index 826c4986aa1..c49be63e337 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/lib/Lex/ModuleMap.cpp @@ -585,6 +585,11 @@ namespace clang { class ModuleMapParser { Lexer &L; SourceManager &SourceMgr; + + /// \brief Default target information, used only for string literal + /// parsing. + const TargetInfo *Target; + DiagnosticsEngine &Diags; ModuleMap ⤅ @@ -596,11 +601,7 @@ namespace clang { /// \brief Whether an error occurred. bool HadError; - - /// \brief Default target information, used only for string literal - /// parsing. - OwningPtr<TargetInfo> Target; - + /// \brief Stores string data for the various string literals referenced /// during parsing. llvm::BumpPtrAllocator StringData; @@ -632,18 +633,15 @@ namespace clang { public: explicit ModuleMapParser(Lexer &L, SourceManager &SourceMgr, + const TargetInfo *Target, DiagnosticsEngine &Diags, ModuleMap &Map, const DirectoryEntry *Directory, const DirectoryEntry *BuiltinIncludeDir) - : L(L), SourceMgr(SourceMgr), Diags(Diags), Map(Map), + : L(L), SourceMgr(SourceMgr), Target(Target), Diags(Diags), Map(Map), Directory(Directory), BuiltinIncludeDir(BuiltinIncludeDir), HadError(false), ActiveModule(0) { - TargetOptions TargetOpts; - TargetOpts.Triple = llvm::sys::getDefaultTargetTriple(); - Target.reset(TargetInfo::CreateTargetInfo(Diags, TargetOpts)); - Tok.clear(); consumeToken(); } @@ -1535,7 +1533,7 @@ bool ModuleMap::parseModuleMapFile(const FileEntry *File) { // Parse this module map file. Lexer L(ID, SourceMgr->getBuffer(ID), *SourceMgr, MMapLangOpts); Diags->getClient()->BeginSourceFile(MMapLangOpts); - ModuleMapParser Parser(L, *SourceMgr, *Diags, *this, File->getDir(), + ModuleMapParser Parser(L, *SourceMgr, Target, *Diags, *this, File->getDir(), BuiltinIncludeDir); bool Result = Parser.parseModuleMapFile(); Diags->getClient()->EndSourceFile(); |

