Author: ctopper Date: Fri Jun 8 17:30:45 2018 New Revision: 334339 URL: http://llvm.org/viewvc/llvm-project?rev=334339&view=rev Log: Use SmallPtrSet instead of SmallSet in places where we iterate over the set.
SmallSet forwards to SmallPtrSet for pointer types. SmallPtrSet supports iteration, but a normal SmallSet doesn't. So if it wasn't for the forwarding, this wouldn't work. These places were found by hiding the begin/end methods in the SmallSet forwarding. Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp cfe/trunk/lib/Sema/SemaDeclCXX.cpp Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/BackendUtil.cpp?rev=334339&r1=334338&r2=334339&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/BackendUtil.cpp (original) +++ cfe/trunk/lib/CodeGen/BackendUtil.cpp Fri Jun 8 17:30:45 2018 @@ -1293,7 +1293,7 @@ void clang::EmbedBitcode(llvm::Module *M // Save llvm.compiler.used and remote it. SmallVector<Constant*, 2> UsedArray; - SmallSet<GlobalValue*, 4> UsedGlobals; + SmallPtrSet<GlobalValue*, 4> UsedGlobals; Type *UsedElementType = Type::getInt8Ty(M->getContext())->getPointerTo(0); GlobalVariable *Used = collectUsedGlobalVariables(*M, UsedGlobals, true); for (auto *GV : UsedGlobals) { Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=334339&r1=334338&r2=334339&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original) +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Fri Jun 8 17:30:45 2018 @@ -15054,9 +15054,9 @@ void Sema::SetIvarInitializers(ObjCImple static void DelegatingCycleHelper(CXXConstructorDecl* Ctor, - llvm::SmallSet<CXXConstructorDecl*, 4> &Valid, - llvm::SmallSet<CXXConstructorDecl*, 4> &Invalid, - llvm::SmallSet<CXXConstructorDecl*, 4> &Current, + llvm::SmallPtrSet<CXXConstructorDecl*, 4> &Valid, + llvm::SmallPtrSet<CXXConstructorDecl*, 4> &Invalid, + llvm::SmallPtrSet<CXXConstructorDecl*, 4> &Current, Sema &S) { if (Ctor->isInvalidDecl()) return; @@ -15118,7 +15118,7 @@ void DelegatingCycleHelper(CXXConstructo void Sema::CheckDelegatingCtorCycles() { - llvm::SmallSet<CXXConstructorDecl*, 4> Valid, Invalid, Current; + llvm::SmallPtrSet<CXXConstructorDecl*, 4> Valid, Invalid, Current; for (DelegatingCtorDeclsType::iterator I = DelegatingCtorDecls.begin(ExternalSource), @@ -15126,9 +15126,7 @@ void Sema::CheckDelegatingCtorCycles() { I != E; ++I) DelegatingCycleHelper(*I, Valid, Invalid, Current, *this); - for (llvm::SmallSet<CXXConstructorDecl *, 4>::iterator CI = Invalid.begin(), - CE = Invalid.end(); - CI != CE; ++CI) + for (auto CI = Invalid.begin(), CE = Invalid.end(); CI != CE; ++CI) (*CI)->setInvalidDecl(); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits