Galina, I've already reverted the offending changes in iterator.h. The MSVC build is now broken due to a different change.
Sorry for the noise (but not really sorry, MSVC shouldn't crash :). On Mon, Oct 10, 2016 at 2:15 PM, Galina Kistanova <gkistan...@gmail.com> wrote: > Hello Justin, > > Some of your resent commits broke the next builder: > http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/12710 > > Please have a look at it? > > Thanks > > Galina > > > > On Mon, Oct 10, 2016 at 9:26 AM, Justin Lebar via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> >> Author: jlebar >> Date: Mon Oct 10 11:26:08 2016 >> New Revision: 283766 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=283766&view=rev >> Log: >> [Sema] Use unique_ptr instead of raw pointers in the late-parsed templates >> map. >> >> Summary: >> This is possible now that MapVector supports move-only values. >> >> Depends on D25404. >> >> Reviewers: timshen >> >> Subscribers: cfe-commits >> >> Differential Revision: https://reviews.llvm.org/D25405 >> >> Modified: >> cfe/trunk/include/clang/Sema/ExternalSemaSource.h >> cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h >> cfe/trunk/include/clang/Sema/Sema.h >> cfe/trunk/include/clang/Serialization/ASTReader.h >> cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp >> cfe/trunk/lib/Sema/Sema.cpp >> cfe/trunk/lib/Sema/SemaTemplate.cpp >> cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp >> cfe/trunk/lib/Serialization/ASTReader.cpp >> cfe/trunk/lib/Serialization/ASTWriter.cpp >> >> Modified: cfe/trunk/include/clang/Sema/ExternalSemaSource.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/ExternalSemaSource.h?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang/Sema/ExternalSemaSource.h (original) >> +++ cfe/trunk/include/clang/Sema/ExternalSemaSource.h Mon Oct 10 11:26:08 >> 2016 >> @@ -190,7 +190,8 @@ public: >> /// external source should take care not to introduce the same map >> entries >> /// repeatedly. >> virtual void ReadLateParsedTemplates( >> - llvm::MapVector<const FunctionDecl *, LateParsedTemplate *> >> &LPTMap) {} >> + llvm::MapVector<const FunctionDecl *, >> std::unique_ptr<LateParsedTemplate>> >> + &LPTMap) {} >> >> /// \copydoc Sema::CorrectTypo >> /// \note LookupKind must correspond to a valid Sema::LookupNameKind >> >> Modified: cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h (original) >> +++ cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h Mon Oct 10 >> 11:26:08 2016 >> @@ -322,8 +322,8 @@ public: >> /// external source should take care not to introduce the same map >> entries >> /// repeatedly. >> void ReadLateParsedTemplates( >> - llvm::MapVector<const FunctionDecl *, LateParsedTemplate *> >> &LPTMap) >> - override; >> + llvm::MapVector<const FunctionDecl *, >> std::unique_ptr<LateParsedTemplate>> >> + &LPTMap) override; >> >> /// \copydoc ExternalSemaSource::CorrectTypo >> /// \note Returns the first nonempty correction. >> >> Modified: cfe/trunk/include/clang/Sema/Sema.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang/Sema/Sema.h (original) >> +++ cfe/trunk/include/clang/Sema/Sema.h Mon Oct 10 11:26:08 2016 >> @@ -551,7 +551,8 @@ public: >> SmallVector<std::pair<CXXMethodDecl*, const FunctionProtoType*>, 2> >> DelayedDefaultedMemberExceptionSpecs; >> >> - typedef llvm::MapVector<const FunctionDecl *, LateParsedTemplate *> >> + typedef llvm::MapVector<const FunctionDecl *, >> + std::unique_ptr<LateParsedTemplate>> >> LateParsedTemplateMapT; >> LateParsedTemplateMapT LateParsedTemplateMap; >> >> >> Modified: cfe/trunk/include/clang/Serialization/ASTReader.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang/Serialization/ASTReader.h (original) >> +++ cfe/trunk/include/clang/Serialization/ASTReader.h Mon Oct 10 11:26:08 >> 2016 >> @@ -1877,8 +1877,8 @@ public: >> SourceLocation> > &Pending) >> override; >> >> void ReadLateParsedTemplates( >> - llvm::MapVector<const FunctionDecl *, LateParsedTemplate *> >> &LPTMap) >> - override; >> + llvm::MapVector<const FunctionDecl *, >> std::unique_ptr<LateParsedTemplate>> >> + &LPTMap) override; >> >> /// \brief Load a selector from disk, registering its ID if it exists. >> void LoadSelector(Selector Sel); >> >> Modified: cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp (original) >> +++ cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp Mon Oct 10 11:26:08 >> 2016 >> @@ -285,7 +285,8 @@ void MultiplexExternalSemaSource::ReadPe >> } >> >> void MultiplexExternalSemaSource::ReadLateParsedTemplates( >> - llvm::MapVector<const FunctionDecl *, LateParsedTemplate *> &LPTMap) >> { >> + llvm::MapVector<const FunctionDecl *, >> std::unique_ptr<LateParsedTemplate>> >> + &LPTMap) { >> for (size_t i = 0; i < Sources.size(); ++i) >> Sources[i]->ReadLateParsedTemplates(LPTMap); >> } >> >> Modified: cfe/trunk/lib/Sema/Sema.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.cpp?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Sema/Sema.cpp (original) >> +++ cfe/trunk/lib/Sema/Sema.cpp Mon Oct 10 11:26:08 2016 >> @@ -259,7 +259,6 @@ void Sema::Initialize() { >> } >> >> Sema::~Sema() { >> - llvm::DeleteContainerSeconds(LateParsedTemplateMap); >> if (VisContext) FreeVisContext(); >> // Kill all the active scopes. >> for (unsigned I = 1, E = FunctionScopes.size(); I != E; ++I) >> >> Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original) >> +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Mon Oct 10 11:26:08 2016 >> @@ -8668,12 +8668,12 @@ void Sema::MarkAsLateParsedTemplate(Func >> if (!FD) >> return; >> >> - LateParsedTemplate *LPT = new LateParsedTemplate; >> + auto LPT = llvm::make_unique<LateParsedTemplate>(); >> >> // Take tokens to avoid allocations >> LPT->Toks.swap(Toks); >> LPT->D = FnD; >> - LateParsedTemplateMap.insert(std::make_pair(FD, LPT)); >> + LateParsedTemplateMap.insert(std::make_pair(FD, std::move(LPT))); >> >> FD->setLateTemplateParsed(true); >> } >> >> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original) >> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Mon Oct 10 11:26:08 >> 2016 >> @@ -3622,9 +3622,10 @@ void Sema::InstantiateFunctionDefinition >> if (PatternDecl->isFromASTFile()) >> ExternalSource->ReadLateParsedTemplates(LateParsedTemplateMap); >> >> - LateParsedTemplate *LPT = LateParsedTemplateMap.lookup(PatternDecl); >> - assert(LPT && "missing LateParsedTemplate"); >> - LateTemplateParser(OpaqueParser, *LPT); >> + auto LPTIter = LateParsedTemplateMap.find(PatternDecl); >> + assert(LPTIter != LateParsedTemplateMap.end() && >> + "missing LateParsedTemplate"); >> + LateTemplateParser(OpaqueParser, *LPTIter->second); >> Pattern = PatternDecl->getBody(PatternDecl); >> } >> >> >> Modified: cfe/trunk/lib/Serialization/ASTReader.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Serialization/ASTReader.cpp (original) >> +++ cfe/trunk/lib/Serialization/ASTReader.cpp Mon Oct 10 11:26:08 2016 >> @@ -7556,12 +7556,13 @@ void ASTReader::ReadPendingInstantiation >> } >> >> void ASTReader::ReadLateParsedTemplates( >> - llvm::MapVector<const FunctionDecl *, LateParsedTemplate *> &LPTMap) >> { >> + llvm::MapVector<const FunctionDecl *, >> std::unique_ptr<LateParsedTemplate>> >> + &LPTMap) { >> for (unsigned Idx = 0, N = LateParsedTemplates.size(); Idx < N; >> /* In loop */) { >> FunctionDecl *FD = >> cast<FunctionDecl>(GetDecl(LateParsedTemplates[Idx++])); >> >> - LateParsedTemplate *LT = new LateParsedTemplate; >> + auto LT = llvm::make_unique<LateParsedTemplate>(); >> LT->D = GetDecl(LateParsedTemplates[Idx++]); >> >> ModuleFile *F = getOwningModuleFile(LT->D); >> @@ -7572,7 +7573,7 @@ void ASTReader::ReadLateParsedTemplates( >> for (unsigned T = 0; T < TokN; ++T) >> LT->Toks.push_back(ReadToken(*F, LateParsedTemplates, Idx)); >> >> - LPTMap.insert(std::make_pair(FD, LT)); >> + LPTMap.insert(std::make_pair(FD, std::move(LT))); >> } >> >> LateParsedTemplates.clear(); >> >> Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=283766&r1=283765&r2=283766&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Serialization/ASTWriter.cpp (original) >> +++ cfe/trunk/lib/Serialization/ASTWriter.cpp Mon Oct 10 11:26:08 2016 >> @@ -4009,14 +4009,14 @@ void ASTWriter::WriteLateParsedTemplates >> return; >> >> RecordData Record; >> - for (auto LPTMapEntry : LPTMap) { >> + for (auto &LPTMapEntry : LPTMap) { >> const FunctionDecl *FD = LPTMapEntry.first; >> - LateParsedTemplate *LPT = LPTMapEntry.second; >> + LateParsedTemplate &LPT = *LPTMapEntry.second; >> AddDeclRef(FD, Record); >> - AddDeclRef(LPT->D, Record); >> - Record.push_back(LPT->Toks.size()); >> + AddDeclRef(LPT.D, Record); >> + Record.push_back(LPT.Toks.size()); >> >> - for (const auto &Tok : LPT->Toks) { >> + for (const auto &Tok : LPT.Toks) { >> AddToken(Tok, Record); >> } >> } >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > > _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits