diff options
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/SemaCodeComplete.cpp | 32 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 10 | ||||
-rw-r--r-- | lib/Sema/SemaDeclAttr.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 56 | ||||
-rw-r--r-- | lib/Sema/SemaDeclObjC.cpp | 14 | ||||
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 6 | ||||
-rw-r--r-- | lib/Sema/SemaInit.cpp | 46 | ||||
-rw-r--r-- | lib/Sema/SemaLambda.cpp | 10 | ||||
-rw-r--r-- | lib/Sema/SemaObjCProperty.cpp | 36 | ||||
-rw-r--r-- | lib/Sema/SemaStmt.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaType.cpp | 10 |
12 files changed, 117 insertions, 111 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index 1ee75329e0..722b232160 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -3347,7 +3347,7 @@ static void AddObjCProperties(ObjCContainerDecl *Container, P != PEnd; ++P) { if (AddedProperties.insert(P->getIdentifier())) - Results.MaybeAddResult(Result(*P, 0), CurContext); + Results.MaybeAddResult(Result(&*P, 0), CurContext); } // Add nullary methods @@ -3362,11 +3362,11 @@ static void AddObjCProperties(ObjCContainerDecl *Container, if (AddedProperties.insert(Name)) { CodeCompletionBuilder Builder(Results.getAllocator(), Results.getCodeCompletionTUInfo()); - AddResultTypeChunk(Context, Policy, *M, Builder); + AddResultTypeChunk(Context, Policy, &*M, Builder); Builder.AddTypedTextChunk( Results.getAllocator().CopyString(Name->getName())); - Results.MaybeAddResult(Result(Builder.TakeString(), *M, + Results.MaybeAddResult(Result(Builder.TakeString(), &*M, CCP_MemberDeclaration + CCD_MethodAsProperty), CurContext); } @@ -3671,10 +3671,10 @@ void Sema::CodeCompleteCase(Scope *S) { for (EnumDecl::enumerator_iterator E = Enum->enumerator_begin(), EEnd = Enum->enumerator_end(); E != EEnd; ++E) { - if (EnumeratorsSeen.count(*E)) + if (EnumeratorsSeen.count(&*E)) continue; - CodeCompletionResult R(*E, Qualifier); + CodeCompletionResult R(&*E, Qualifier); R.Priority = CCP_EnumInCase; Results.AddResult(R, CurContext, 0, false); } @@ -4036,7 +4036,7 @@ void Sema::CodeCompleteNamespaceDecl(Scope *S) { for (DeclContext::specific_decl_iterator<NamespaceDecl> NS(Ctx->decls_begin()), NSEnd(Ctx->decls_end()); NS != NSEnd; ++NS) - OrigToLatest[NS->getOriginalNamespace()] = *NS; + OrigToLatest[NS->getOriginalNamespace()] = &*NS; // Add the most recent definition (or extended definition) of each // namespace to the list of results. @@ -4192,7 +4192,7 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, SawLastInitializer = NumInitializers > 0 && Initializers[NumInitializers - 1]->isAnyMemberInitializer() && - Initializers[NumInitializers - 1]->getAnyMember() == *Field; + Initializers[NumInitializers - 1]->getAnyMember() == &*Field; continue; } @@ -4209,7 +4209,7 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, : CCP_MemberDeclaration, CXCursor_MemberRef, CXAvailability_Available, - *Field)); + &*Field)); SawLastInitializer = false; } Results.ExitScope(); @@ -4697,17 +4697,17 @@ static void AddObjCMethods(ObjCContainerDecl *Container, for (ObjCContainerDecl::method_iterator M = Container->meth_begin(), MEnd = Container->meth_end(); M != MEnd; ++M) { - if ((*M)->isInstanceMethod() == WantInstanceMethods) { + if (M->isInstanceMethod() == WantInstanceMethods) { // Check whether the selector identifiers we've been given are a // subset of the identifiers for this particular method. - if (!isAcceptableObjCMethod(*M, WantKind, SelIdents, NumSelIdents, + if (!isAcceptableObjCMethod(&*M, WantKind, SelIdents, NumSelIdents, AllowSameLength)) continue; - if (!Selectors.insert((*M)->getSelector())) + if (!Selectors.insert(M->getSelector())) continue; - Result R = Result(*M, 0); + Result R = Result(&*M, 0); R.StartParameter = NumSelIdents; R.AllParametersAreInformative = (WantKind != MK_Any); if (!InOriginalClass) @@ -6020,12 +6020,12 @@ static void FindImplementableMethods(ASTContext &Context, for (ObjCContainerDecl::method_iterator M = Container->meth_begin(), MEnd = Container->meth_end(); M != MEnd; ++M) { - if ((*M)->isInstanceMethod() == WantInstanceMethods) { + if (M->isInstanceMethod() == WantInstanceMethods) { if (!ReturnType.isNull() && - !Context.hasSameUnqualifiedType(ReturnType, (*M)->getResultType())) + !Context.hasSameUnqualifiedType(ReturnType, M->getResultType())) continue; - KnownMethods[(*M)->getSelector()] = std::make_pair(*M, InOriginalClass); + KnownMethods[M->getSelector()] = std::make_pair(&*M, InOriginalClass); } } } @@ -6841,7 +6841,7 @@ void Sema::CodeCompleteObjCMethodDecl(Scope *S, for (ObjCContainerDecl::prop_iterator P = Containers[I]->prop_begin(), PEnd = Containers[I]->prop_end(); P != PEnd; ++P) { - AddObjCKeyValueCompletions(*P, IsInstanceMethod, ReturnType, Context, + AddObjCKeyValueCompletions(&*P, IsInstanceMethod, ReturnType, Context, KnownSelectors, Results); } } diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 28b3aa8013..09d9d34e3a 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -7361,7 +7361,7 @@ Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D) { if (EnumDecl *ED = dyn_cast<EnumDecl>(D)) { for (EnumDecl::enumerator_iterator EI = ED->enumerator_begin(), EE = ED->enumerator_end(); EI != EE; ++EI) - PushOnScopeChains(*EI, FnBodyScope, /*AddToContext=*/false); + PushOnScopeChains(&*EI, FnBodyScope, /*AddToContext=*/false); } } } @@ -9186,7 +9186,7 @@ void Sema::DiagnoseNontrivial(const RecordType* T, CXXSpecialMember member) { if (RD->hasUserDeclaredConstructor()) { typedef CXXRecordDecl::ctor_iterator ctor_iter; for (ctor_iter CI = RD->ctor_begin(), CE = RD->ctor_end(); CI != CE; ++CI) - if (DiagnoseNontrivialUserProvidedCtor(*this, QT, *CI, member)) + if (DiagnoseNontrivialUserProvidedCtor(*this, QT, &*CI, member)) return; // No user-provided constructors; look for constructor templates. @@ -9303,12 +9303,12 @@ void Sema::DiagnoseNontrivial(const RecordType* T, CXXSpecialMember member) { typedef RecordDecl::field_iterator field_iter; for (field_iter fi = RD->field_begin(), fe = RD->field_end(); fi != fe; ++fi) { - QualType EltTy = Context.getBaseElementType((*fi)->getType()); + QualType EltTy = Context.getBaseElementType(fi->getType()); if (const RecordType *EltRT = EltTy->getAs<RecordType>()) { CXXRecordDecl* EltRD = cast<CXXRecordDecl>(EltRT->getDecl()); if (!(EltRD->*hasTrivial)()) { - SourceLocation FLoc = (*fi)->getLocation(); + SourceLocation FLoc = fi->getLocation(); Diag(FLoc, diag::note_nontrivial_has_nontrivial) << QT << 0 << member; DiagnoseNontrivial(EltRT, member); return; @@ -9324,7 +9324,7 @@ void Sema::DiagnoseNontrivial(const RecordType* T, CXXSpecialMember member) { case Qualifiers::OCL_Autoreleasing: case Qualifiers::OCL_Weak: case Qualifiers::OCL_Strong: - Diag((*fi)->getLocation(), diag::note_nontrivial_objc_ownership) + Diag(fi->getLocation(), diag::note_nontrivial_objc_ownership) << QT << EltTy.getObjCLifetime(); return; } diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp index 0e1c43c7a4..47e393c18d 100644 --- a/lib/Sema/SemaDeclAttr.cpp +++ b/lib/Sema/SemaDeclAttr.cpp @@ -2572,7 +2572,7 @@ static void handleTransparentUnionAttr(Sema &S, Decl *D, return; } - FieldDecl *FirstField = *Field; + FieldDecl *FirstField = &*Field; QualType FirstType = FirstField->getType(); if (FirstType->hasFloatingRepresentation() || FirstType->isVectorType()) { S.Diag(FirstField->getLocation(), diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 7312dbde28..1576973a3e 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -833,8 +833,8 @@ static void CheckConstexprCtorInitializer(Sema &SemaRef, I != E; ++I) // If an anonymous union contains an anonymous struct of which any member // is initialized, all members must be initialized. - if (!RD->isUnion() || Inits.count(*I)) - CheckConstexprCtorInitializer(SemaRef, Dcl, *I, Inits, Diagnosed); + if (!RD->isUnion() || Inits.count(&*I)) + CheckConstexprCtorInitializer(SemaRef, Dcl, &*I, Inits, Diagnosed); } } @@ -920,7 +920,7 @@ bool Sema::CheckConstexprFunctionBody(const FunctionDecl *Dcl, Stmt *Body) { unsigned Fields = 0; for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I, ++Fields) { - if ((*I)->isAnonymousStructOrUnion()) { + if (I->isAnonymousStructOrUnion()) { AnyAnonStructUnionMembers = true; break; } @@ -943,7 +943,7 @@ bool Sema::CheckConstexprFunctionBody(const FunctionDecl *Dcl, Stmt *Body) { bool Diagnosed = false; for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I) - CheckConstexprCtorInitializer(*this, Dcl, *I, Inits, Diagnosed); + CheckConstexprCtorInitializer(*this, Dcl, &*I, Inits, Diagnosed); if (Diagnosed) return false; } @@ -3089,7 +3089,7 @@ DiagnoseBaseOrMemInitializerOrder(Sema &SemaRef, if (Field->isUnnamedBitfield()) continue; - IdealInitKeys.push_back(GetKeyForTopLevelField(*Field)); + IdealInitKeys.push_back(GetKeyForTopLevelField(&*Field)); } unsigned NumIdealInits = IdealInitKeys.size(); @@ -3289,7 +3289,7 @@ Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location, // Non-static data members. for (CXXRecordDecl::field_iterator I = ClassDecl->field_begin(), E = ClassDecl->field_end(); I != E; ++I) { - FieldDecl *Field = *I; + FieldDecl *Field = &*I; if (Field->isInvalidDecl()) continue; @@ -3732,8 +3732,8 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { for (CXXRecordDecl::method_iterator M = Record->method_begin(), MEnd = Record->method_end(); M != MEnd; ++M) { - if (!(*M)->isStatic()) - DiagnoseHiddenVirtualMethods(Record, *M); + if (!M->isStatic()) + DiagnoseHiddenVirtualMethods(Record, &*M); } } @@ -3762,7 +3762,7 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { case TSK_Undeclared: case TSK_ExplicitSpecialization: - RequireLiteralType((*M)->getLocation(), Context.getRecordType(Record), + RequireLiteralType(M->getLocation(), Context.getRecordType(Record), PDiag(diag::err_constexpr_method_non_literal)); break; } @@ -3791,30 +3791,30 @@ void Sema::CheckExplicitlyDefaultedMethods(CXXRecordDecl *Record) { ME = Record->method_end(); MI != ME; ++MI) { if (!MI->isInvalidDecl() && MI->isExplicitlyDefaulted()) { - switch (getSpecialMember(*MI)) { + switch (getSpecialMember(&*MI)) { case CXXDefaultConstructor: CheckExplicitlyDefaultedDefaultConstructor( - cast<CXXConstructorDecl>(*MI)); + cast<CXXConstructorDecl>(&*MI)); break; case CXXDestructor: - CheckExplicitlyDefaultedDestructor(cast<CXXDestructorDecl>(*MI)); + CheckExplicitlyDefaultedDestructor(cast<CXXDestructorDecl>(&*MI)); break; case CXXCopyConstructor: - CheckExplicitlyDefaultedCopyConstructor(cast<CXXConstructorDecl>(*MI)); + CheckExplicitlyDefaultedCopyConstructor(cast<CXXConstructorDecl>(&*MI)); break; case CXXCopyAssignment: - CheckExplicitlyDefaultedCopyAssignment(*MI); + CheckExplicitlyDefaultedCopyAssignment(&*MI); break; case CXXMoveConstructor: - CheckExplicitlyDefaultedMoveConstructor(cast<CXXConstructorDecl>(*MI)); + CheckExplicitlyDefaultedMoveConstructor(cast<CXXConstructorDecl>(&*MI)); break; case CXXMoveAssignment: - CheckExplicitlyDefaultedMoveAssignment(*MI); + CheckExplicitlyDefaultedMoveAssignment(&*MI); break; case CXXInvalid: @@ -4599,7 +4599,7 @@ bool SpecialMemberDeletionInfo::shouldDeleteForField(FieldDecl *FD) { CXXRecordDecl *UnionFieldRecord = UnionFieldType->getAsCXXRecordDecl(); if (UnionFieldRecord && - shouldDeleteForClassSubobject(UnionFieldRecord, *UI)) + shouldDeleteForClassSubobject(UnionFieldRecord, &*UI)) return true; } @@ -4736,7 +4736,7 @@ bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM, for (CXXRecordDecl::field_iterator FI = RD->field_begin(), FE = RD->field_end(); FI != FE; ++FI) if (!FI->isInvalidDecl() && !FI->isUnnamedBitfield() && - SMI.shouldDeleteForField(*FI)) + SMI.shouldDeleteForField(&*FI)) return true; if (SMI.shouldDeleteForAllConstMembers()) @@ -7088,7 +7088,7 @@ void Sema::DeclareInheritedConstructors(CXXRecordDecl *ClassDecl) { // results from omitting any ellipsis parameter specification and // successively omitting parameters with a default argument from the // end of the parameter-type-list. - CXXConstructorDecl *BaseCtor = *CtorIt; + CXXConstructorDecl *BaseCtor = &*CtorIt; bool CanBeCopyOrMove = BaseCtor->isCopyOrMoveConstructor(); const FunctionProtoType *BaseCtorType = BaseCtor->getType()->getAs<FunctionProtoType>(); @@ -7641,7 +7641,7 @@ Sema::ComputeDefaultedCopyAssignmentExceptionSpecAndConst( FieldEnd = ClassDecl->field_end(); HasConstCopyAssignment && Field != FieldEnd; ++Field) { - QualType FieldType = Context.getBaseElementType((*Field)->getType()); + QualType FieldType = Context.getBaseElementType(Field->getType()); if (CXXRecordDecl *FieldClassDecl = FieldType->getAsCXXRecordDecl()) { HasConstCopyAssignment &= (bool)LookupCopyingAssignment(FieldClassDecl, Qualifiers::Const, @@ -7693,7 +7693,7 @@ Sema::ComputeDefaultedCopyAssignmentExceptionSpecAndConst( FieldEnd = ClassDecl->field_end(); Field != FieldEnd; ++Field) { - QualType FieldType = Context.getBaseElementType((*Field)->getType()); + QualType FieldType = Context.getBaseElementType(Field->getType()); if (CXXRecordDecl *FieldClassDecl = FieldType->getAsCXXRecordDecl()) { if (CXXMethodDecl *CopyAssign = LookupCopyingAssignment(FieldClassDecl, ArgQuals, false, 0)) @@ -7919,7 +7919,7 @@ void Sema::DefineImplicitCopyAssignment(SourceLocation CurrentLocation, CXXScopeSpec SS; // Intentionally empty LookupResult MemberLookup(*this, Field->getDeclName(), Loc, LookupMemberName); - MemberLookup.addDecl(*Field); + MemberLookup.addDecl(&*Field); MemberLookup.resolveKind(); ExprResult From = BuildMemberReferenceExpr(OtherRef, OtherRefType, Loc, /*IsArrow=*/false, @@ -8121,7 +8121,7 @@ Sema::ComputeDefaultedMoveAssignmentExceptionSpec(CXXRecordDecl *ClassDecl) { FieldEnd = ClassDecl->field_end(); Field != FieldEnd; ++Field) { - QualType FieldType = Context.getBaseElementType((*Field)->getType()); + QualType FieldType = Context.getBaseElementType(Field->getType()); if (CXXRecordDecl *FieldClassDecl = FieldType->getAsCXXRecordDecl()) { if (CXXMethodDecl *MoveAssign = LookupMovingAssignment(FieldClassDecl, false, 0)) @@ -8209,7 +8209,7 @@ static bool subobjectsHaveMoveOrTrivialCopy(Sema &S, CXXRecordDecl *ClassDecl, for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), FieldEnd = ClassDecl->field_end(); Field != FieldEnd; ++Field) { - if (!hasMoveOrIsTriviallyCopyable(S, (*Field)->getType(), IsConstructor)) + if (!hasMoveOrIsTriviallyCopyable(S, Field->getType(), IsConstructor)) return false; } @@ -8454,7 +8454,7 @@ void Sema::DefineImplicitMoveAssignment(SourceLocation CurrentLocation, CXXScopeSpec SS; // Intentionally empty LookupResult MemberLookup(*this, Field->getDeclName(), Loc, LookupMemberName); - MemberLookup.addDecl(*Field); + MemberLookup.addDecl(&*Field); MemberLookup.resolveKind(); ExprResult From = BuildMemberReferenceExpr(OtherRef, OtherRefType, Loc, /*IsArrow=*/false, @@ -8670,7 +8670,7 @@ Sema::ComputeDefaultedCopyCtorExceptionSpecAndConst(CXXRecordDecl *ClassDecl) { FieldEnd = ClassDecl->field_end(); HasConstCopyConstructor && Field != FieldEnd; ++Field) { - QualType FieldType = Context.getBaseElementType((*Field)->getType()); + QualType FieldType = Context.getBaseElementType(Field->getType()); if (CXXRecordDecl *FieldClassDecl = FieldType->getAsCXXRecordDecl()) { HasConstCopyConstructor &= (bool)LookupCopyingConstructor(FieldClassDecl, Qualifiers::Const); @@ -8714,7 +8714,7 @@ Sema::ComputeDefaultedCopyCtorExceptionSpecAndConst(CXXRecordDecl *ClassDecl) { FieldEnd = ClassDecl->field_end(); Field != FieldEnd; ++Field) { - QualType FieldType = Context.getBaseElementType((*Field)->getType()); + QualType FieldType = Context.getBaseElementType(Field->getType()); if (CXXRecordDecl *FieldClassDecl = FieldType->getAsCXXRecordDecl()) { if (CXXConstructorDecl *CopyConstructor = LookupCopyingConstructor(FieldClassDecl, Quals)) @@ -10939,7 +10939,7 @@ void Sema::MarkVirtualMembersReferenced(SourceLocation Loc, const CXXRecordDecl *RD) { for (CXXRecordDecl::method_iterator i = RD->method_begin(), e = RD->method_end(); i != e; ++i) { - CXXMethodDecl *MD = *i; + CXXMethodDecl *MD = &*i; // C++ [basic.def.odr]p2: // [...] A virtual member function is used if it is not pure. [...] diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index a942d4979d..ba741f3798 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -694,7 +694,7 @@ void Sema::DiagnoseClassExtensionDupMethods(ObjCCategoryDecl *CAT, llvm::DenseMap<Selector, const ObjCMethodDecl*> MethodMap; for (ObjCInterfaceDecl::method_iterator i = ID->meth_begin(), e = ID->meth_end(); i != e; ++i) { - ObjCMethodDecl *MD = *i; + ObjCMethodDecl *MD = &*i; MethodMap[MD->getSelector()] = MD; } @@ -702,7 +702,7 @@ void Sema::DiagnoseClassExtensionDupMethods(ObjCCategoryDecl *CAT, return; for (ObjCCategoryDecl::method_iterator i = CAT->meth_begin(), e = CAT->meth_end(); i != e; ++i) { - ObjCMethodDecl *Method = *i; + ObjCMethodDecl *Method = &*i; const ObjCMethodDecl *&PrevMethod = MethodMap[Method->getSelector()]; if (PrevMethod && !MatchTwoMethodDeclarations(Method, PrevMethod)) { Diag(Method->getLocation(), diag::err_duplicate_method_decl) @@ -1064,7 +1064,7 @@ void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl, IVI = IDecl->ivar_begin(), IVE = IDecl->ivar_end(); for (; numIvars > 0 && IVI != IVE; ++IVI) { ObjCIvarDecl* ImplIvar = ivars[j++]; - ObjCIvarDecl* ClsIvar = *IVI; + ObjCIvarDecl* ClsIvar = &*IVI; assert (ImplIvar && "missing implementation ivar"); assert (ClsIvar && "missing class ivar"); @@ -1094,7 +1094,7 @@ void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl, if (numIvars > 0) Diag(ivars[j]->getLocation(), diag::err_inconsistant_ivar_count); else if (IVI != IVE) - Diag((*IVI)->getLocation(), diag::err_inconsistant_ivar_count); + Diag(IVI->getLocation(), diag::err_inconsistant_ivar_count); } void Sema::WarnUndefinedMethod(SourceLocation ImpLoc, ObjCMethodDecl *method, @@ -2186,7 +2186,7 @@ void Sema::DiagnoseDuplicateIvars(ObjCInterfaceDecl *ID, ObjCInterfaceDecl *SID) { for (ObjCInterfaceDecl::ivar_iterator IVI = ID->ivar_begin(), IVE = ID->ivar_end(); IVI != IVE; ++IVI) { - ObjCIvarDecl* Ivar = (*IVI); + ObjCIvarDecl* Ivar = &*IVI; if (Ivar->isInvalidDecl()) continue; if (IdentifierInfo *II = Ivar->getIdentifier()) { @@ -2331,7 +2331,7 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, for (ObjCContainerDecl::prop_iterator I = CDecl->prop_begin(), E = CDecl->prop_end(); I != E; ++I) - ProcessPropertyDecl(*I, CDecl); + ProcessPropertyDecl(&*I, CDecl); CDecl->setAtEndRange(AtEnd); } if (ObjCImplementationDecl *IC=dyn_cast<ObjCImplementationDecl>(ClassDecl)) { @@ -2347,7 +2347,7 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ClsExtDecl; ClsExtDecl = ClsExtDecl->getNextClassExtension()) { for (ObjCContainerDecl::prop_iterator I = ClsExtDecl->prop_begin(), E = ClsExtDecl->prop_end(); I != E; ++I) { - ObjCPropertyDecl *Property = (*I); + ObjCPropertyDecl *Property = &*I; // Skip over properties declared @dynamic if (const ObjCPropertyImplDecl *PIDecl = IC->FindPropertyImplDecl(Property->getIdentifier())) diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 9de08bc309..87a67ff632 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -5678,7 +5678,7 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, if (RHSType->isPointerType()) if (RHSType->castAs<PointerType>()->getPointeeType()->isVoidType()) { RHS = ImpCastExprToType(RHS.take(), it->getType(), CK_BitCast); - InitField = *it; + InitField = &*it; break; } @@ -5686,7 +5686,7 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, Expr::NPC_ValueDependentIsNull)) { RHS = ImpCastExprToType(RHS.take(), it->getType(), CK_NullToPointer); - InitField = *it; + InitField = &*it; break; } } @@ -5695,7 +5695,7 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, if (CheckAssignmentConstraints(it->getType(), RHS, Kind) == Compatible) { RHS = ImpCastExprToType(RHS.take(), it->getType(), Kind); - InitField = *it; + InitField = &*it; break; } } diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp index 4b80b77ecc..7d88c7eea9 100644 --- a/lib/Sema/SemaInit.cpp +++ b/lib/Sema/SemaInit.cpp @@ -375,7 +375,7 @@ InitListChecker::FillInValueInitializations(const InitializedEntity &Entity, if (hadError) return; - FillInValueInitForField(Init, *Field, Entity, ILE, RequiresSecondPass); + FillInValueInitForField(Init, &*Field, Entity, ILE, RequiresSecondPass); if (hadError) return; @@ -1336,9 +1336,9 @@ void InitListChecker::CheckStructUnionTypes(const InitializedEntity &Entity, if (Field->getDeclName()) { if (VerifyOnly) CheckValueInitializable( - InitializedEntity::InitializeMember(*Field, &Entity)); + InitializedEntity::InitializeMember(&*Field, &Entity)); else - StructuredList->setInitializedFieldInUnion(*Field); + StructuredList->setInitializedFieldInUnion(&*Field); break; } } @@ -1401,9 +1401,9 @@ void InitListChecker::CheckStructUnionTypes(const InitializedEntity &Entity, // Make sure we can use this declaration. bool InvalidUse; if (VerifyOnly) - InvalidUse = !SemaRef.CanUseDecl(*Field); + InvalidUse = !SemaRef.CanUseDecl(&*Field); else - InvalidUse = SemaRef.DiagnoseUseOfDecl(*Field, + InvalidUse = SemaRef.DiagnoseUseOfDecl(&*Field, IList->getInit(Index)->getLocStart()); if (InvalidUse) { ++Index; @@ -1413,14 +1413,14 @@ void InitListChecker::CheckStructUnionTypes(const InitializedEntity &Entity, } InitializedEntity MemberEntity = - InitializedEntity::InitializeMember(*Field, &Entity); + InitializedEntity::InitializeMember(&*Field, &Entity); CheckSubElementType(MemberEntity, IList, Field->getType(), Index, StructuredList, StructuredIndex); InitializedSomething = true; if (DeclType->isUnionType() && !VerifyOnly) { // Initialize the first field within the union. - StructuredList->setInitializedFieldInUnion(*Field); + StructuredList->setInitializedFieldInUnion(&*Field); } ++Field; @@ -1449,7 +1449,7 @@ void InitListChecker::CheckStructUnionTypes(const InitializedEntity &Entity, for (; Field != FieldEnd && !hadError; ++Field) { if (!Field->isUnnamedBitfield()) CheckValueInitializable( - InitializedEntity::InitializeMember(*Field, &Entity)); + InitializedEntity::InitializeMember(&*Field, &Entity)); } } @@ -1457,7 +1457,7 @@ void InitListChecker::CheckStructUnionTypes(const InitializedEntity &Entity, Index >= IList->getNumInits()) return; - if (CheckFlexibleArrayInit(Entity, IList->getInit(Index), *Field, + if (CheckFlexibleArrayInit(Entity, IList->getInit(Index), &*Field, TopLevelObject)) { hadError = true; ++Index; @@ -1465,7 +1465,7 @@ void InitListChecker::CheckStructUnionTypes(const InitializedEntity &Entity, } InitializedEntity MemberEntity = - InitializedEntity::InitializeMember(*Field, &Entity); + InitializedEntity::InitializeMember(&*Field, &Entity); if (isa<InitListExpr>(IList->getInit(Index))) CheckSubElementType(MemberEntity, IList, Field->getType(), Index, @@ -1679,7 +1679,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, // IndirectFieldDecl that follow for the designated initializer. if (!KnownField && Field->isAnonymousStructOrUnion()) { if (IndirectFieldDecl *IF = - FindIndirectFieldDesignator(*Field, FieldName)) { + FindIndirectFieldDesignator(&*Field, FieldName)) { // In verify mode, don't modify the original. if (VerifyOnly) DIE = CloneDesignatedInitExpr(SemaRef, DIE); @@ -1688,7 +1688,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, break; } } - if (KnownField && KnownField == *Field) + if (KnownField && KnownField == &*Field) break; if (FieldName && FieldName == Field->getIdentifier()) break; @@ -1757,7 +1757,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, if (Field->isUnnamedBitfield()) continue; - if (ReplacementField == *Field || + if (ReplacementField == &*Field || Field->getIdentifier() == ReplacementField->getIdentifier()) break; @@ -1771,15 +1771,15 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, if (RT->getDecl()->isUnion()) { FieldIndex = 0; if (!VerifyOnly) - StructuredList->setInitializedFieldInUnion(*Field); + StructuredList->setInitializedFieldInUnion(&*Field); } // Make sure we can use this declaration. bool InvalidUse; if (VerifyOnly) - InvalidUse = !SemaRef.CanUseDecl(*Field); + InvalidUse = !SemaRef.CanUseDecl(&*Field); else - InvalidUse = SemaRef.DiagnoseUseOfDecl(*Field, D->getFieldLoc()); + InvalidUse = SemaRef.DiagnoseUseOfDecl(&*Field, D->getFieldLoc()); if (InvalidUse) { ++Index; return true; @@ -1787,7 +1787,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, if (!VerifyOnly) { // Update the designator with the field declaration. - D->setField(*Field); + D->setField(&*Field); // Make sure that our non-designated initializer list has space // for a subobject corresponding to this field. @@ -1809,7 +1809,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, << SourceRange(NextD->getStartLocation(), DIE->getSourceRange().getEnd()); SemaRef.Diag(Field->getLocation(), diag::note_flexible_array_member) - << *Field; + << &*Field; } Invalid = true; } @@ -1822,13 +1822,13 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, diag::err_flexible_array_init_needs_braces) << DIE->getInit()->getSourceRange(); SemaRef.Diag(Field->getLocation(), diag::note_flexible_array_member) - << *Field; + << &*Field; } Invalid = true; } // Check GNU flexible array initializer. - if (!Invalid && CheckFlexibleArrayInit(Entity, DIE->getInit(), *Field, + if (!Invalid && CheckFlexibleArrayInit(Entity, DIE->getInit(), &*Field, TopLevelObject)) Invalid = true; @@ -1844,7 +1844,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, IList->setInit(Index, DIE->getInit()); InitializedEntity MemberEntity = - InitializedEntity::InitializeMember(*Field, &Entity); + InitializedEntity::InitializeMember(&*Field, &Entity); CheckSubElementType(MemberEntity, IList, Field->getType(), Index, StructuredList, newStructuredIndex); @@ -1859,11 +1859,11 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, } } else { // Recurse to check later designated subobjects. - QualType FieldType = (*Field)->getType(); + QualType FieldType = Field->getType(); unsigned newStructuredIndex = FieldIndex; InitializedEntity MemberEntity = - InitializedEntity::InitializeMember(*Field, &Entity); + InitializedEntity::InitializeMember(&*Field, &Entity); if (CheckDesignatedInitializer(MemberEntity, IList, DIE, DesigIdx + 1, FieldType, 0, 0, Index, StructuredList, newStructuredIndex, diff --git a/lib/Sema/SemaLambda.cpp b/lib/Sema/SemaLambda.cpp index 6ef8d88bbe..2e391f4d45 100644 --- a/lib/Sema/SemaLambda.cpp +++ b/lib/Sema/SemaLambda.cpp @@ -441,7 +441,10 @@ void Sema::ActOnLambdaError(SourceLocation StartLoc, Scope *CurScope, LambdaScopeInfo *LSI = getCurLambda(); CXXRecordDecl *Class = LSI->Lambda; Class->setInvalidDecl(); - SmallVector<Decl*, 4> Fields(Class->field_begin(), Class->field_end()); + SmallVector<Decl*, 4> Fields; + for (RecordDecl::field_iterator i = Class->field_begin(), + e = Class->field_end(); i != e; ++i) + Fields.push_back(&*i); ActOnFields(0, Class->getLocation(), Class, Fields, SourceLocation(), SourceLocation(), 0); CheckCompletedCXXClass(Class); @@ -704,7 +707,10 @@ ExprResult Sema::ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body, addBlockPointerConversion(*this, IntroducerRange, Class, CallOperator); // Finalize the lambda class. - SmallVector<Decl*, 4> Fields(Class->field_begin(), Class->field_end()); + SmallVector<Decl*, 4> Fields; + for (RecordDecl::field_iterator i = Class->field_begin(), + e = Class->field_end(); i != e; ++i) + Fields.push_back(&*i); ActOnFields(0, Class->getLocation(), Class, Fields, SourceLocation(), SourceLocation(), 0); CheckCompletedCXXClass(Class); diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp index 5ece8f11e7..74167b2a33 100644 --- a/lib/Sema/SemaObjCProperty.cpp +++ b/lib/Sema/SemaObjCProperty.cpp @@ -1059,11 +1059,11 @@ void Sema::ComparePropertiesInBaseAndSuper(ObjCInterfaceDecl *IDecl) { // FIXME: O(N^2) for (ObjCInterfaceDecl::prop_iterator S = SDecl->prop_begin(), E = SDecl->prop_end(); S != E; ++S) { - ObjCPropertyDecl *SuperPDecl = (*S); + ObjCPropertyDecl *SuperPDecl = &*S; // Does property in super class has declaration in current class? for (ObjCInterfaceDecl::prop_iterator I = IDecl->prop_begin(), E = IDecl->prop_end(); I != E; ++I) { - ObjCPropertyDecl *PDecl = (*I); + ObjCPropertyDecl *PDecl = &*I; if (SuperPDecl->getIdentifier() == PDecl->getIdentifier()) DiagnosePropertyMismatch(PDecl, SuperPDecl, SDecl->getIdentifier()); @@ -1085,29 +1085,29 @@ Sema::MatchOneProtocolPropertiesInClass(Decl *CDecl, if (!CatDecl->IsClassExtension()) for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(), E = PDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Pr = (*P); + ObjCPropertyDecl *Pr = &*P; ObjCCategoryDecl::prop_iterator CP, CE; // Is this property already in category's list of properties? for (CP = CatDecl->prop_begin(), CE = CatDecl->prop_end(); CP!=CE; ++CP) - if ((*CP)->getIdentifier() == Pr->getIdentifier()) + if (CP->getIdentifier() == Pr->getIdentifier()) break; if (CP != CE) // Property protocol already exist in class. Diagnose any mismatch. - DiagnosePropertyMismatch((*CP), Pr, PDecl->getIdentifier()); + DiagnosePropertyMismatch(&*CP, Pr, PDecl->getIdentifier()); } return; } for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(), E = PDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Pr = (*P); + ObjCPropertyDecl *Pr = &*P; ObjCInterfaceDecl::prop_iterator CP, CE; // Is this property already in class's list of properties? for (CP = IDecl->prop_begin(), CE = IDecl->prop_end(); CP != CE; ++CP) - if ((*CP)->getIdentifier() == Pr->getIdentifier()) + if (CP->getIdentifier() == Pr->getIdentifier()) break; if (CP != CE) // Property protocol already exist in class. Diagnose any mismatch. - DiagnosePropertyMismatch((*CP), Pr, PDecl->getIdentifier()); + DiagnosePropertyMismatch(&*CP, Pr, PDecl->getIdentifier()); } } @@ -1223,7 +1223,7 @@ void Sema::CollectImmediateProperties(ObjCContainerDecl *CDecl, if (ObjCInterfaceDecl *IDecl = dyn_cast<ObjCInterfaceDecl>(CDecl)) { for (ObjCContainerDecl::prop_iterator P = IDecl->prop_begin(), E = IDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = (*P); + ObjCPropertyDecl *Prop = &*P; PropMap[Prop->getIdentifier()] = Prop; } // scan through class's protocols. @@ -1236,7 +1236,7 @@ void Sema::CollectImmediateProperties(ObjCContainerDecl *CDecl, if (!CATDecl-& |