From 581deb3da481053c4993c7600f97acf7768caac5 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Wed, 6 Jun 2012 20:45:41 +0000 Subject: [PATCH] Revert Decl's iterators back to pointer value_type rather than reference value_type In addition, I've made the pointer and reference typedef 'void' rather than T* just so they can't get misused. I would've omitted them entirely but std::distance likes them to be there even if it doesn't use them. This rolls back r155808 and r155869. Review by Doug Gregor incorporating feedback from Chandler Carruth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158104 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/DeclBase.h | 68 ++++++++----------- lib/ARCMigrate/TransProperties.cpp | 4 +- lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp | 2 +- lib/AST/ASTContext.cpp | 10 +-- lib/AST/ASTImporter.cpp | 2 +- lib/AST/Decl.cpp | 4 +- lib/AST/DeclBase.cpp | 11 --- lib/AST/DeclCXX.cpp | 8 +-- lib/AST/DeclObjC.cpp | 22 +++--- lib/AST/DeclPrinter.cpp | 2 +- lib/AST/ExprConstant.cpp | 8 +-- lib/AST/ItaniumMangle.cpp | 9 +-- lib/AST/RecordLayoutBuilder.cpp | 36 ++++------ lib/AST/VTableBuilder.cpp | 10 +-- lib/Analysis/CFG.cpp | 2 +- lib/Analysis/UninitializedValues.cpp | 2 +- lib/CodeGen/CGCall.cpp | 15 ++-- lib/CodeGen/CGClass.cpp | 6 +- lib/CodeGen/CGDebugInfo.cpp | 6 +- lib/CodeGen/CGExprAgg.cpp | 6 +- lib/CodeGen/CGExprCXX.cpp | 4 +- lib/CodeGen/CGExprConstant.cpp | 26 +++---- lib/CodeGen/CGExprScalar.cpp | 2 +- lib/CodeGen/CGObjCGNU.cpp | 4 +- lib/CodeGen/CGObjCMac.cpp | 10 +-- lib/CodeGen/CGRecordLayoutBuilder.cpp | 10 +-- lib/CodeGen/CodeGenModule.cpp | 2 +- lib/CodeGen/TargetInfo.cpp | 12 ++-- lib/Frontend/LayoutOverrideSource.cpp | 2 +- lib/Rewrite/RewriteModernObjC.cpp | 18 ++--- lib/Rewrite/RewriteObjC.cpp | 20 +++--- lib/Sema/IdentifierResolver.cpp | 2 +- lib/Sema/SemaCodeComplete.cpp | 24 +++---- lib/Sema/SemaDecl.cpp | 4 +- lib/Sema/SemaDeclAttr.cpp | 2 +- lib/Sema/SemaDeclCXX.cpp | 26 +++---- lib/Sema/SemaDeclObjC.cpp | 12 ++-- lib/Sema/SemaExpr.cpp | 6 +- lib/Sema/SemaInit.cpp | 44 ++++++------ lib/Sema/SemaLambda.cpp | 4 +- lib/Sema/SemaLookup.cpp | 2 +- lib/Sema/SemaObjCProperty.cpp | 30 ++++---- lib/Sema/SemaStmt.cpp | 2 +- lib/Sema/SemaTemplateInstantiateDecl.cpp | 4 +- lib/Sema/SemaType.cpp | 2 +- lib/Serialization/ASTReader.cpp | 2 +- .../Checkers/CallAndMessageChecker.cpp | 4 +- .../Checkers/CheckObjCDealloc.cpp | 4 +- .../Checkers/LLVMConventionsChecker.cpp | 4 +- .../Checkers/ObjCUnusedIVarsChecker.cpp | 4 +- lib/StaticAnalyzer/Core/MemRegion.cpp | 2 +- lib/StaticAnalyzer/Core/RegionStore.cpp | 2 +- lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp | 4 +- 53 files changed, 250 insertions(+), 283 deletions(-) diff --git a/include/clang/AST/DeclBase.h b/include/clang/AST/DeclBase.h index 6aef681d75..d51e2abc37 100644 --- a/include/clang/AST/DeclBase.h +++ b/include/clang/AST/DeclBase.h @@ -693,18 +693,17 @@ public: Decl *Starter; public: - typedef Decl value_type; - typedef value_type& reference; - typedef value_type* pointer; + typedef Decl *value_type; + typedef const value_type &reference; + typedef const value_type *pointer; typedef std::forward_iterator_tag iterator_category; - typedef std::ptrdiff_t difference_type; + typedef std::ptrdiff_t difference_type; redecl_iterator() : Current(0) { } explicit redecl_iterator(Decl *C) : Current(C), Starter(C) { } - reference operator*() const { return *Current; } - pointer operator->() const { return Current; } - operator pointer() const { return Current; } + reference operator*() const { return Current; } + value_type operator->() const { return Current; } redecl_iterator& operator++() { assert(Current && "Advancing while iterator has reached end"); @@ -1175,9 +1174,9 @@ public: Decl *Current; public: - typedef Decl* value_type; - typedef Decl* reference; - typedef Decl* pointer; + typedef Decl *value_type; + typedef const value_type &reference; + typedef const value_type *pointer; typedef std::forward_iterator_tag iterator_category; typedef std::ptrdiff_t difference_type; @@ -1185,7 +1184,8 @@ public: explicit decl_iterator(Decl *C) : Current(C) { } reference operator*() const { return Current; } - pointer operator->() const { return Current; } + // This doesn't meet the iterator requirements, but it's convenient + value_type operator->() const { return Current; } decl_iterator& operator++() { Current = Current->getNextDeclInContext(); @@ -1209,14 +1209,14 @@ public: /// decls_begin/decls_end - Iterate over the declarations stored in /// this context. decl_iterator decls_begin() const; - decl_iterator decls_end() const; + decl_iterator decls_end() const { return decl_iterator(); } bool decls_empty() const; /// noload_decls_begin/end - Iterate over the declarations stored in this /// context that are currently loaded; don't attempt to retrieve anything /// from an external source. decl_iterator noload_decls_begin() const; - decl_iterator noload_decls_end() const; + decl_iterator noload_decls_end() const { return decl_iterator(); } /// specific_decl_iterator - Iterates over a subrange of /// declarations stored in a DeclContext, providing only those that @@ -1239,9 +1239,11 @@ public: } public: - typedef SpecificDecl value_type; - typedef SpecificDecl& reference; - typedef SpecificDecl* pointer; + typedef SpecificDecl *value_type; + // TODO: Add reference and pointer typedefs (with some appropriate proxy + // type) if we ever have a need for them. + typedef void reference; + typedef void pointer; typedef std::iterator_traits::difference_type difference_type; typedef std::forward_iterator_tag iterator_category; @@ -1260,8 +1262,9 @@ public: SkipToNextDecl(); } - reference operator*() const { return *cast(*Current); } - pointer operator->() const { return &**this; } + value_type operator*() const { return cast(*Current); } + // This doesn't meet the iterator requirements, but it's convenient + value_type operator->() const { return **this; } specific_decl_iterator& operator++() { ++Current; @@ -1313,9 +1316,11 @@ public: } public: - typedef SpecificDecl* value_type; - typedef SpecificDecl* reference; - typedef SpecificDecl* pointer; + typedef SpecificDecl *value_type; + // TODO: Add reference and pointer typedefs (with some appropriate proxy + // type) if we ever have a need for them. + typedef void reference; + typedef void pointer; typedef std::iterator_traits::difference_type difference_type; typedef std::forward_iterator_tag iterator_category; @@ -1334,8 +1339,8 @@ public: SkipToNextDecl(); } - reference operator*() const { return cast(*Current); } - pointer operator->() const { return cast(*Current); } + value_type operator*() const { return cast(*Current); } + value_type operator->() const { return cast(*Current); } filtered_decl_iterator& operator++() { ++Current; @@ -1635,23 +1640,6 @@ struct cast_convert_val< const ::clang::DeclContext, FromTy*, FromTy*> { } }; -// simplify_type - Allow clients to treat redecl_iterators just like Decl -// pointers when using casting operators. -template<> struct simplify_type< ::clang::Decl::redecl_iterator> { - typedef ::clang::Decl *SimpleType; - static SimpleType getSimplifiedValue(const ::clang::Decl::redecl_iterator - &Val) { - return Val; - } -}; -template<> struct simplify_type { - typedef ::clang::Decl *SimpleType; - static SimpleType getSimplifiedValue(const ::clang::Decl::redecl_iterator - &Val) { - return Val; - } -}; - } // end namespace llvm #endif diff --git a/lib/ARCMigrate/TransProperties.cpp b/lib/ARCMigrate/TransProperties.cpp index 5ec918fe93..fdd6e8863b 100644 --- a/lib/ARCMigrate/TransProperties.cpp +++ b/lib/ARCMigrate/TransProperties.cpp @@ -85,7 +85,7 @@ public: if (PrevAtProps->find(RawLoc) != PrevAtProps->end()) continue; PropsTy &props = AtProps[RawLoc]; - props.push_back(&*propI); + props.push_back(*propI); } } @@ -102,7 +102,7 @@ public: for (prop_impl_iterator I = prop_impl_iterator(D->decls_begin()), E = prop_impl_iterator(D->decls_end()); I != E; ++I) { - ObjCPropertyImplDecl *implD = &*I; + ObjCPropertyImplDecl *implD = *I; if (implD->getPropertyImplementation() != ObjCPropertyImplDecl::Synthesize) continue; ObjCPropertyDecl *propD = implD->getPropertyDecl(); diff --git a/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp b/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp index 05c1329016..d1f08aac28 100644 --- a/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp +++ b/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp @@ -114,7 +114,7 @@ public: // this class implementation. for (ObjCImplDecl::propimpl_iterator I = IMD->propimpl_begin(), EI = IMD->propimpl_end(); I != EI; ++I) { - ObjCPropertyImplDecl *PID = &*I; + ObjCPropertyImplDecl *PID = *I; if (PID->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize) { ObjCPropertyDecl *PD = PID->getPropertyDecl(); diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 27057883e5..164813b7c3 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -1192,7 +1192,7 @@ void ASTContext::DeepCollectObjCIvars(const ObjCInterfaceDecl *OI, if (!leafClass) { for (ObjCInterfaceDecl::ivar_iterator I = OI->ivar_begin(), E = OI->ivar_end(); I != E; ++I) - Ivars.push_back(&*I); + Ivars.push_back(*I); } else { ObjCInterfaceDecl *IDecl = const_cast(OI); for (const ObjCIvarDecl *Iv = IDecl->all_declared_ivar_begin(); Iv; @@ -4232,7 +4232,7 @@ void ASTContext::getObjCEncodingForPropertyDecl(const ObjCPropertyDecl *PD, for (ObjCCategoryImplDecl::propimpl_iterator i = CID->propimpl_begin(), e = CID->propimpl_end(); i != e; ++i) { - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyDecl() == PD) { if (PID->getPropertyImplementation()==ObjCPropertyImplDecl::Dynamic) { Dynamic = true; @@ -4246,7 +4246,7 @@ void ASTContext::getObjCEncodingForPropertyDecl(const ObjCPropertyDecl *PD, for (ObjCCategoryImplDecl::propimpl_iterator i = OID->propimpl_begin(), e = OID->propimpl_end(); i != e; ++i) { - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyDecl() == PD) { if (PID->getPropertyImplementation()==ObjCPropertyImplDecl::Dynamic) { Dynamic = true; @@ -4568,7 +4568,7 @@ void ASTContext::getObjCEncodingForTypeImpl(QualType T, std::string& S, // Special case bit-fields. if (Field->isBitField()) { getObjCEncodingForTypeImpl(Field->getType(), S, false, true, - &*Field); + *Field); } else { QualType qt = Field->getType(); getLegacyIntegralTypeEncoding(qt); @@ -4764,7 +4764,7 @@ void ASTContext::getObjCEncodingForStructureImpl(RecordDecl *RDecl, Field != FieldEnd; ++Field, ++i) { uint64_t offs = layout.getFieldOffset(i); FieldOrBaseOffsets.insert(FieldOrBaseOffsets.upper_bound(offs), - std::make_pair(offs, &*Field)); + std::make_pair(offs, *Field)); } if (CXXRec && includeVBases) { diff --git a/lib/AST/ASTImporter.cpp b/lib/AST/ASTImporter.cpp index 3825dbb63a..417f3cff58 100644 --- a/lib/AST/ASTImporter.cpp +++ b/lib/AST/ASTImporter.cpp @@ -1017,7 +1017,7 @@ static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, return false; } - if (!IsStructurallyEquivalent(Context, &*Field1, &*Field2)) + if (!IsStructurallyEquivalent(Context, *Field1, *Field2)) return false; } diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 0ca36cbb14..1d5ff10f7b 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -2499,11 +2499,11 @@ unsigned FieldDecl::getFieldIndex() const { if (IsMsStruct) { // Zero-length bitfields following non-bitfield members are ignored. - if (getASTContext().ZeroBitfieldFollowsNonBitfield(&*I, LastFD)) { + if (getASTContext().ZeroBitfieldFollowsNonBitfield(*I, LastFD)) { --Index; continue; } - LastFD = &*I; + LastFD = *I; } } diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp index a0191f95d0..de97173089 100644 --- a/lib/AST/DeclBase.cpp +++ b/lib/AST/DeclBase.cpp @@ -974,10 +974,6 @@ DeclContext::decl_iterator DeclContext::noload_decls_begin() const { return decl_iterator(FirstDecl); } -DeclContext::decl_iterator DeclContext::noload_decls_end() const { - return decl_iterator(); -} - DeclContext::decl_iterator DeclContext::decls_begin() const { if (hasExternalLexicalStorage()) LoadLexicalDeclsFromExternalStorage(); @@ -985,13 +981,6 @@ DeclContext::decl_iterator DeclContext::decls_begin() const { return decl_iterator(FirstDecl); } -DeclContext::decl_iterator DeclContext::decls_end() const { - if (hasExternalLexicalStorage()) - LoadLexicalDeclsFromExternalStorage(); - - return decl_iterator(); -} - bool DeclContext::decls_empty() const { if (hasExternalLexicalStorage()) LoadLexicalDeclsFromExternalStorage(); diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp index 571ad4b39c..1c0316db71 100644 --- a/lib/AST/DeclCXX.cpp +++ b/lib/AST/DeclCXX.cpp @@ -401,7 +401,7 @@ CXXConstructorDecl *CXXRecordDecl::getCopyConstructor(unsigned TypeQuals) const{ CXXConstructorDecl *CXXRecordDecl::getMoveConstructor() const { for (ctor_iterator I = ctor_begin(), E = ctor_end(); I != E; ++I) if (I->isMoveConstructor()) - return &*I; + return *I; return 0; } @@ -459,7 +459,7 @@ CXXMethodDecl *CXXRecordDecl::getCopyAssignmentOperator(bool ArgIsConst) const { CXXMethodDecl *CXXRecordDecl::getMoveAssignmentOperator() const { for (method_iterator I = method_begin(), E = method_end(); I != E; ++I) if (I->isMoveAssignmentOperator()) - return &*I; + return *I; return 0; } @@ -999,11 +999,11 @@ void CXXRecordDecl::getCaptureFields( for (LambdaExpr::Capture *C = Lambda.Captures, *CEnd = C + Lambda.NumCaptures; C != CEnd; ++C, ++Field) { if (C->capturesThis()) { - ThisCapture = &*Field; + ThisCapture = *Field; continue; } - Captures[C->getCapturedVar()] = &*Field; + Captures[C->getCapturedVar()] = *Field; } } diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp index faa4f5c2de..f07b9e04fe 100644 --- a/lib/AST/DeclObjC.cpp +++ b/lib/AST/DeclObjC.cpp @@ -767,9 +767,9 @@ ObjCIvarDecl *ObjCInterfaceDecl::all_declared_ivar_begin() { ObjCIvarDecl *curIvar = 0; if (!ivar_empty()) { ObjCInterfaceDecl::ivar_iterator I = ivar_begin(), E = ivar_end(); - data().IvarList = &*I; ++I; - for (curIvar = data().IvarList; I != E; curIvar = &*I, ++I) - curIvar->setNextIvar(&*I); + data().IvarList = *I; ++I; + for (curIvar = data().IvarList; I != E; curIvar = *I, ++I) + curIvar->setNextIvar(*I); } for (const ObjCCategoryDecl *CDecl = getFirstClassExtension(); CDecl; @@ -778,11 +778,11 @@ ObjCIvarDecl *ObjCInterfaceDecl::all_declared_ivar_begin() { ObjCCategoryDecl::ivar_iterator I = CDecl->ivar_begin(), E = CDecl->ivar_end(); if (!data().IvarList) { - data().IvarList = &*I; ++I; + data().IvarList = *I; ++I; curIvar = data().IvarList; } - for ( ;I != E; curIvar = &*I, ++I) - curIvar->setNextIvar(&*I); + for ( ;I != E; curIvar = *I, ++I) + curIvar->setNextIvar(*I); } } @@ -791,11 +791,11 @@ ObjCIvarDecl *ObjCInterfaceDecl::all_declared_ivar_begin() { ObjCImplementationDecl::ivar_iterator I = ImplDecl->ivar_begin(), E = ImplDecl->ivar_end(); if (!data().IvarList) { - data().IvarList = &*I; ++I; + data().IvarList = *I; ++I; curIvar = data().IvarList; } - for ( ;I != E; curIvar = &*I, ++I) - curIvar->setNextIvar(&*I); + for ( ;I != E; curIvar = *I, ++I) + curIvar->setNextIvar(*I); } } return data().IvarList; @@ -1175,7 +1175,7 @@ void ObjCImplDecl::setClassInterface(ObjCInterfaceDecl *IFace) { ObjCPropertyImplDecl *ObjCImplDecl:: FindPropertyImplIvarDecl(IdentifierInfo *ivarId) const { for (propimpl_iterator i = propimpl_begin(), e = propimpl_end(); i != e; ++i){ - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyIvarDecl() && PID->getPropertyIvarDecl()->getIdentifier() == ivarId) return PID; @@ -1190,7 +1190,7 @@ FindPropertyImplIvarDecl(IdentifierInfo *ivarId) const { ObjCPropertyImplDecl *ObjCImplDecl:: FindPropertyImplDecl(IdentifierInfo *Id) const { for (propimpl_iterator i = propimpl_begin(), e = propimpl_end(); i != e; ++i){ - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyDecl()->getIdentifier() == Id) return PID; } diff --git a/lib/AST/DeclPrinter.cpp b/lib/AST/DeclPrinter.cpp index d65825e395..6d4eaa3517 100644 --- a/lib/AST/DeclPrinter.cpp +++ b/lib/AST/DeclPrinter.cpp @@ -913,7 +913,7 @@ void DeclPrinter::VisitObjCInterfaceDecl(ObjCInterfaceDecl *OID) { Indentation += Policy.Indentation; for (ObjCInterfaceDecl::ivar_iterator I = OID->ivar_begin(), E = OID->ivar_end(); I != E; ++I) { - Indent() << I->getType().getAsString(Policy) << ' ' << *I << ";\n"; + Indent() << I->getType().getAsString(Policy) << ' ' << **I << ";\n"; } Indentation -= Policy.Indentation; Out << "}\n"; diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index d3ab84fc4a..e9cce9f23a 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -3418,7 +3418,7 @@ static bool HandleClassZeroInitialization(EvalInfo &Info, const Expr *E, continue; LValue Subobject = This; - if (!HandleLValueMember(Info, E, Subobject, &*I, &Layout)) + if (!HandleLValueMember(Info, E, Subobject, *I, &Layout)) return false; ImplicitValueInitExpr VIE(I->getType()); @@ -3443,9 +3443,9 @@ bool RecordExprEvaluator::ZeroInitialization(const Expr *E) { } LValue Subobject = This; - if (!HandleLValueMember(Info, E, Subobject, &*I)) + if (!HandleLValueMember(Info, E, Subobject, *I)) return false; - Result = APValue(&*I); + Result = APValue(*I); ImplicitValueInitExpr VIE(I->getType()); return EvaluateInPlace(Result.getUnionValue(), Info, Subobject, &VIE); } @@ -3536,7 +3536,7 @@ bool RecordExprEvaluator::VisitInitListExpr(const InitListExpr *E) { // FIXME: Diagnostics here should point to the end of the initializer // list, not the start. if (!HandleLValueMember(Info, HaveInit ? E->getInit(ElementNo) : E, - Subobject, &*Field, &Layout)) + Subobject, *Field, &Layout)) return false; // Perform an implicit value-initialization for members beyond the end of diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp index 0c9028e48f..e974ade6f6 100644 --- a/lib/AST/ItaniumMangle.cpp +++ b/lib/AST/ItaniumMangle.cpp @@ -1032,17 +1032,14 @@ static const FieldDecl *FindFirstNamedDataMember(const RecordDecl *RD) { for (RecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I) { - const FieldDecl *FD = &*I; + if (I->getIdentifier()) + return *I; - if (FD->getIdentifier()) - return FD; - - if (const RecordType *RT = FD->getType()->getAs()) { + if (const RecordType *RT = I->getType()->getAs()) if (const FieldDecl *NamedDataMember = FindFirstNamedDataMember(RT->getDecl())) return NamedDataMember; } - } // We didn't find a named data member. return 0; diff --git a/lib/AST/RecordLayoutBuilder.cpp b/lib/AST/RecordLayoutBuilder.cpp index 312d646c7a..ace57be2ce 100644 --- a/lib/AST/RecordLayoutBuilder.cpp +++ b/lib/AST/RecordLayoutBuilder.cpp @@ -161,10 +161,9 @@ void EmptySubobjectMap::ComputeEmptySubobjectSizes() { // Check the fields. for (CXXRecordDecl::field_iterator I = Class->field_begin(), E = Class->field_end(); I != E; ++I) { - const FieldDecl &FD = *I; const RecordType *RT = - Context.getBaseElementType(FD.getType())->getAs(); + Context.getBaseElementType(I->getType())->getAs(); // We only care about record types. if (!RT) @@ -261,12 +260,11 @@ EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info, unsigned FieldNo = 0; for (CXXRecordDecl::field_iterator I = Info->Class->field_begin(), E = Info->Class->field_end(); I != E; ++I, ++FieldNo) { - const FieldDecl *FD = &*I; - if (FD->isBitField()) + if (I->isBitField()) continue; CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo); - if (!CanPlaceFieldSubobjectAtOffset(FD, FieldOffset)) + if (!CanPlaceFieldSubobjectAtOffset(*I, FieldOffset)) return false; } @@ -310,12 +308,11 @@ void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info, unsigned FieldNo = 0; for (CXXRecordDecl::field_iterator I = Info->Class->field_begin(), E = Info->Class->field_end(); I != E; ++I, ++FieldNo) { - const FieldDecl *FD = &*I; - if (FD->isBitField()) + if (I->isBitField()) continue; CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo); - UpdateEmptyFieldSubobjects(FD, FieldOffset); + UpdateEmptyFieldSubobjects(*I, FieldOffset); } } @@ -380,13 +377,12 @@ EmptySubobjectMap::CanPlaceFieldSubobjectAtOffset(const CXXRecordDecl *RD, unsigned FieldNo = 0; for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I, ++FieldNo) { - const FieldDecl *FD = &*I; - if (FD->isBitField()) + if (I->isBitField()) continue; CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo); - if (!CanPlaceFieldSubobjectAtOffset(FD, FieldOffset)) + if (!CanPlaceFieldSubobjectAtOffset(*I, FieldOffset)) return false; } @@ -491,13 +487,12 @@ void EmptySubobjectMap::UpdateEmptyFieldSubobjects(const CXXRecordDecl *RD, unsigned FieldNo = 0; for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I, ++FieldNo) { - const FieldDecl *FD = &*I; - if (FD->isBitField()) + if (I->isBitField()) continue; CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo); - UpdateEmptyFieldSubobjects(FD, FieldOffset); + UpdateEmptyFieldSubobjects(*I, FieldOffset); } } @@ -1730,7 +1725,7 @@ void RecordLayoutBuilder::LayoutFields(const RecordDecl *D) { for (RecordDecl::field_iterator Field = D->field_begin(), FieldEnd = D->field_end(); Field != FieldEnd; ++Field) { if (IsMsStruct) { - FieldDecl *FD = &*Field; + FieldDecl *FD = *Field; if (Context.ZeroBitfieldFollowsBitfield(FD, LastFD)) ZeroLengthBitfield = FD; // Zero-length bitfields following non-bitfield members are @@ -1825,11 +1820,10 @@ void RecordLayoutBuilder::LayoutFields(const RecordDecl *D) { } else if (!Context.getTargetInfo().useBitFieldTypeAlignment() && Context.getTargetInfo().useZeroLengthBitfieldAlignment()) { - FieldDecl *FD = &*Field; - if (FD->isBitField() && FD->getBitWidthValue(Context) == 0) - ZeroLengthBitfield = FD; + if (Field->isBitField() && Field->getBitWidthValue(Context) == 0) + ZeroLengthBitfield = *Field; } - LayoutField(&*Field); + LayoutField(*Field); } if (IsMsStruct && RemainingInAlignment && LastFD && LastFD->isBitField() && LastFD->getBitWidthValue(Context)) { @@ -2337,7 +2331,7 @@ RecordLayoutBuilder::ComputeKeyFunction(const CXXRecordDecl *RD) { for (CXXRecordDecl::method_iterator I = RD->method_begin(), E = RD->method_end(); I != E; ++I) { - const CXXMethodDecl *MD = &*I; + const CXXMethodDecl *MD = *I; if (!MD->isVirtual()) continue; @@ -2607,7 +2601,7 @@ static void DumpCXXRecordLayout(raw_ostream &OS, uint64_t FieldNo = 0; for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I, ++FieldNo) { - const FieldDecl &Field = *I; + const FieldDecl &Field = **I; CharUnits FieldOffset = Offset + C.toCharUnitsFromBits(Layout.getFieldOffset(FieldNo)); diff --git a/lib/AST/VTableBuilder.cpp b/lib/AST/VTableBuilder.cpp index 44f457ca79..107d9fb78c 100644 --- a/lib/AST/VTableBuilder.cpp +++ b/lib/AST/VTableBuilder.cpp @@ -409,7 +409,7 @@ void FinalOverriders::dump(raw_ostream &Out, BaseSubobject Base, // Now dump the overriders for this base subobject. for (CXXRecordDecl::method_iterator I = RD->method_begin(), E = RD->method_end(); I != E; ++I) { - const CXXMethodDecl *MD = &*I; + const CXXMethodDecl *MD = *I; if (!MD->isVirtual()) continue; @@ -692,7 +692,7 @@ void VCallAndVBaseOffsetBuilder::AddVCallOffsets(BaseSubobject Base, // Add the vcall offsets. for (CXXRecordDecl::method_iterator I = RD->method_begin(), E = RD->method_end(); I != E; ++I) { - const CXXMethodDecl *MD = &*I; + const CXXMethodDecl *MD = *I; if (!MD->isVirtual()) continue; @@ -1469,7 +1469,7 @@ VTableBuilder::AddMethods(BaseSubobject Base, CharUnits BaseOffsetInLayoutClass, // Now go through all virtual member functions and add them. for (CXXRecordDecl::method_iterator I = RD->method_begin(), E = RD->method_end(); I != E; ++I) { - const CXXMethodDecl *MD = &*I; + const CXXMethodDecl *MD = *I; if (!MD->isVirtual()) continue; @@ -2105,7 +2105,7 @@ void VTableBuilder::dumpLayout(raw_ostream& Out) { for (CXXRecordDecl::method_iterator i = MostDerivedClass->method_begin(), e = MostDerivedClass->method_end(); i != e; ++i) { - const CXXMethodDecl *MD = &*i; + const CXXMethodDecl *MD = *i; // We only want virtual member functions. if (!MD->isVirtual()) @@ -2217,7 +2217,7 @@ void VTableContext::ComputeMethodVTableIndices(const CXXRecordDecl *RD) { for (CXXRecordDecl::method_iterator i = RD->method_begin(), e = RD->method_end(); i != e; ++i) { - const CXXMethodDecl *MD = &*i; + const CXXMethodDecl *MD = *i; // We only want virtual methods. if (!MD->isVirtual()) diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp index 44a0eec21d..9ac92dce37 100644 --- a/lib/Analysis/CFG.cpp +++ b/lib/Analysis/CFG.cpp @@ -832,7 +832,7 @@ void CFGBuilder::addImplicitDtorsForDestructor(const CXXDestructorDecl *DD) { if (const CXXRecordDecl *CD = QT->getAsCXXRecordDecl()) if (!CD->hasTrivialDestructor()) { autoCreateBlock(); - appendMemberDtor(Block, &*FI); + appendMemberDtor(Block, *FI); } } } diff --git a/lib/Analysis/UninitializedValues.cpp b/lib/Analysis/UninitializedValues.cpp index 13c6e4a783..57dfab36fd 100644 --- a/lib/Analysis/UninitializedValues.cpp +++ b/lib/Analysis/UninitializedValues.cpp @@ -61,7 +61,7 @@ void DeclToIndex::computeMap(const DeclContext &dc) { DeclContext::specific_decl_iterator I(dc.decls_begin()), E(dc.decls_end()); for ( ; I != E; ++I) { - const VarDecl *vd = &*I; + const VarDecl *vd = *I; if (isTrackedVar(vd, &dc)) map[vd] = count++; } diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index 4a8efe1738..c1106c52d4 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -431,7 +431,7 @@ void CodeGenTypes::GetExpandedTypes(QualType type, for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; assert(!FD->isBitField() && "Cannot expand structure with bit-field members."); CharUnits FieldSize = getContext().getTypeSizeInChars(FD->getType()); @@ -445,10 +445,9 @@ void CodeGenTypes::GetExpandedTypes(QualType type, } else { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl &FD = *i; - assert(!FD.isBitField() && + assert(!i->isBitField() && "Cannot expand structure with bit-field members."); - GetExpandedTypes(FD.getType(), expandedTypes); + GetExpandedTypes(i->getType(), expandedTypes); } } } else if (const ComplexType *CT = type->getAs()) { @@ -483,7 +482,7 @@ CodeGenFunction::ExpandTypeFromArgs(QualType Ty, LValue LV, for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; assert(!FD->isBitField() && "Cannot expand structure with bit-field members."); CharUnits FieldSize = getContext().getTypeSizeInChars(FD->getType()); @@ -500,7 +499,7 @@ CodeGenFunction::ExpandTypeFromArgs(QualType Ty, LValue LV, } else { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - FieldDecl *FD = &*i; + FieldDecl *FD = *i; QualType FT = FD->getType(); // FIXME: What are the right qualifiers here? @@ -1815,7 +1814,7 @@ void CodeGenFunction::ExpandTypeToArgs(QualType Ty, RValue RV, for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; assert(!FD->isBitField() && "Cannot expand structure with bit-field members."); CharUnits FieldSize = getContext().getTypeSizeInChars(FD->getType()); @@ -1831,7 +1830,7 @@ void CodeGenFunction::ExpandTypeToArgs(QualType Ty, RValue RV, } else { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - FieldDecl *FD = &*i; + FieldDecl *FD = *i; RValue FldRV = EmitRValueForField(LV, FD); ExpandTypeToArgs(FD->getType(), FldRV, Args, IRFuncTy); diff --git a/lib/CodeGen/CGClass.cpp b/lib/CodeGen/CGClass.cpp index 174a44258b..7062b9c621 100644 --- a/lib/CodeGen/CGClass.cpp +++ b/lib/CodeGen/CGClass.cpp @@ -808,7 +808,7 @@ HasTrivialDestructorBody(ASTContext &Context, // Check fields. for (CXXRecordDecl::field_iterator I = BaseClassDecl->field_begin(), E = BaseClassDecl->field_end(); I != E; ++I) { - const FieldDecl *Field = &*I; + const FieldDecl *Field = *I; if (!FieldHasTrivialDestructorBody(Context, Field)) return false; @@ -869,7 +869,7 @@ static bool CanSkipVTablePointerInitialization(ASTContext &Context, const CXXRecordDecl *ClassDecl = Dtor->getParent(); for (CXXRecordDecl::field_iterator I = ClassDecl->field_begin(), E = ClassDecl->field_end(); I != E; ++I) { - const FieldDecl *Field = &*I; + const FieldDecl *Field = *I; if (!FieldHasTrivialDestructorBody(Context, Field)) return false; @@ -1066,7 +1066,7 @@ void CodeGenFunction::EnterDtorCleanups(const CXXDestructorDecl *DD, SmallVector FieldDecls; for (CXXRecordDecl::field_iterator I = ClassDecl->field_begin(), E = ClassDecl->field_end(); I != E; ++I) { - const FieldDecl *field = &*I; + const FieldDecl *field = *I; QualType type = field->getType(); QualType::DestructionKind dtorKind = type.isDestructedType(); if (!dtorKind) continue; diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 07ddc33881..beea777a97 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -797,7 +797,7 @@ CollectRecordFields(const RecordDecl *record, llvm::DIFile tunit, for (RecordDecl::field_iterator I = record->field_begin(), E = record->field_end(); I != E; ++I, ++fieldNo) { - FieldDecl *field = &*I; + FieldDecl *field = *I; if (IsMsStruct) { // Zero-length bitfields following non-bitfield members are ignored @@ -1338,7 +1338,7 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty, for (ObjCContainerDecl::prop_iterator I = ID->prop_begin(), E = ID->prop_end(); I != E; ++I) { - const ObjCPropertyDecl *PD = &*I; + const ObjCPropertyDecl *PD = *I; SourceLocation Loc = PD->getLocation(); llvm::DIFile PUnit = getOrCreateFile(Loc); unsigned PLine = getLineNumber(Loc); @@ -2332,7 +2332,7 @@ void CGDebugInfo::EmitDeclare(const VarDecl *VD, unsigned Tag, for (RecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I) { - FieldDecl *Field = &*I; + FieldDecl *Field = *I; llvm::DIType FieldTy = getOrCreateType(Field->getType(), Unit); StringRef FieldName = Field->getName(); diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index d53cbc430f..7b0e0f5157 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -352,7 +352,7 @@ void AggExprEmitter::EmitStdInitializerList(llvm::Value *destPtr, return; } LValue DestLV = CGF.MakeNaturalAlignAddrLValue(destPtr, initList->getType()); - LValue start = CGF.EmitLValueForFieldInitialization(DestLV, &*field); + LValue start = CGF.EmitLValueForFieldInitialization(DestLV, *field); llvm::Value *arrayStart = Builder.CreateStructGEP(alloc, 0, "arraystart"); CGF.EmitStoreThroughLValue(RValue::get(arrayStart), start); ++field; @@ -361,7 +361,7 @@ void AggExprEmitter::EmitStdInitializerList(llvm::Value *destPtr, CGF.ErrorUnsupported(initList, "weird std::initializer_list"); return; } - LValue endOrLength = CGF.EmitLValueForFieldInitialization(DestLV, &*field); + LValue endOrLength = CGF.EmitLValueForFieldInitialization(DestLV, *field); if (ctx.hasSameType(field->getType(), elementPtr)) { // End pointer. llvm::Value *arrayEnd = Builder.CreateStructGEP(alloc,numInits, "arrayend"); @@ -1005,7 +1005,7 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E) { break; - LValue LV = CGF.EmitLValueForFieldInitialization(DestLV, &*field); + LValue LV = CGF.EmitLValueForFieldInitialization(DestLV, *field); // We never generate write-barries for initialized fields. LV.setNonGC(true); diff --git a/lib/CodeGen/CGExprCXX.cpp b/lib/CodeGen/CGExprCXX.cpp index fa711e17e7..f1d0395714 100644 --- a/lib/CodeGen/CGExprCXX.cpp +++ b/lib/CodeGen/CGExprCXX.cpp @@ -1823,10 +1823,10 @@ void CodeGenFunction::EmitLambdaExpr(const LambdaExpr *E, AggValueSlot Slot) { i != e; ++i, ++CurField) { // Emit initialization - LValue LV = EmitLValueForFieldInitialization(SlotLV, &*CurField); + LValue LV = EmitLValueForFieldInitialization(SlotLV, *CurField); ArrayRef ArrayIndexes; if (CurField->getType()->isArrayType()) ArrayIndexes = E->getCaptureInitIndexVars(i); - EmitInitializerForField(&*CurField, LV, *i, ArrayIndexes); + EmitInitializerForField(*CurField, LV, *i, ArrayIndexes); } } diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp index 4e308aefe4..854810b310 100644 --- a/lib/CodeGen/CGExprConstant.cpp +++ b/lib/CodeGen/CGExprConstant.cpp @@ -386,20 +386,20 @@ bool ConstStructBuilder::Build(InitListExpr *ILE) { if (IsMsStruct) { // Zero-length bitfields following non-bitfield members are // ignored: - if (CGM.getContext().ZeroBitfieldFollowsNonBitfield(&*Field, LastFD)) { + if (CGM.getContext().ZeroBitfieldFollowsNonBitfield(*Field, LastFD)) { --FieldNo; continue; } - LastFD = &*Field; + LastFD = *Field; } // If this is a union, skip all the fields that aren't being initialized. - if (RD->isUnion() && ILE->getInitializedFieldInUnion() != &*Field) + if (RD->isUnion() && ILE->getInitializedFieldInUnion() != *Field) continue; // Don't emit anonymous bitfields, they just affect layout. if (Field->isUnnamedBitfield()) { - LastFD = &*Field; + LastFD = *Field; continue; } @@ -417,10 +417,10 @@ bool ConstStructBuilder::Build(InitListExpr *ILE) { if (!Field->isBitField()) { // Handle non-bitfield members. - AppendField(&*Field, Layout.getFieldOffset(FieldNo), EltInit); + AppendField(*Field, Layout.getFieldOffset(FieldNo), EltInit); } else { // Otherwise we have a bitfield. - AppendBitField(&*Field, Layout.getFieldOffset(FieldNo), + AppendBitField(*Field, Layout.getFieldOffset(FieldNo), cast(EltInit)); } } @@ -486,20 +486,20 @@ void ConstStructBuilder::Build(const APValue &Val, const RecordDecl *RD, if (IsMsStruct) { // Zero-length bitfields following non-bitfield members are // ignored: - if (CGM.getContext().ZeroBitfieldFollowsNonBitfield(&*Field, LastFD)) { + if (CGM.getContext().ZeroBitfieldFollowsNonBitfield(*Field, LastFD)) { --FieldNo; continue; } - LastFD = &*Field; + LastFD = *Field; } // If this is a union, skip all the fields that aren't being initialized. - if (RD->isUnion() && Val.getUnionField() != &*Field) + if (RD->isUnion() && Val.getUnionField() != *Field) continue; // Don't emit anonymous bitfields, they just affect layout. if (Field->isUnnamedBitfield()) { - LastFD = &*Field; + LastFD = *Field; continue; } @@ -512,10 +512,10 @@ void ConstStructBuilder::Build(const APValue &Val, const RecordDecl *RD, if (!Field->isBitField()) { // Handle non-bitfield members. - AppendField(&*Field, Layout.getFieldOffset(FieldNo) + OffsetBits, EltInit); + AppendField(*Field, Layout.getFieldOffset(FieldNo) + OffsetBits, EltInit); } else { // Otherwise we have a bitfield. - AppendBitField(&*Field, Layout.getFieldOffset(FieldNo) + OffsetBits, + AppendBitField(*Field, Layout.getFieldOffset(FieldNo) + OffsetBits, cast(EltInit)); } } @@ -1374,7 +1374,7 @@ static llvm::Constant *EmitNullConstant(CodeGenModule &CGM, // Fill in all the fields. for (RecordDecl::field_iterator I = record->field_begin(), E = record->field_end(); I != E; ++I) { - const FieldDecl *field = &*I; + const FieldDecl *field = *I; // Fill in non-bitfields. (Bitfields always use a zero pattern, which we // will fill in later.) diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index f8b4c0832c..e0265545be 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/lib/CodeGen/CGExprScalar.cpp @@ -1522,7 +1522,7 @@ Value *ScalarExprEmitter::VisitOffsetOfExpr(OffsetOfExpr *E) { for (RecordDecl::field_iterator Field = RD->field_begin(), FieldEnd = RD->field_end(); Field != FieldEnd; ++Field, ++i) { - if (&*Field == MemberDecl) + if (*Field == MemberDecl) break; } assert(i < RL.getFieldCount() && "offsetof field in wrong type"); diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp index e783eb7794..e3ae237bec 100644 --- a/lib/CodeGen/CGObjCGNU.cpp +++ b/lib/CodeGen/CGObjCGNU.cpp @@ -1627,7 +1627,7 @@ void CGObjCGNU::GenerateProtocol(const ObjCProtocolDecl *PD) { iter = PD->prop_begin(), endIter = PD->prop_end(); iter != endIter ; iter++) { std::vector Fields; - ObjCPropertyDecl *property = &*iter; + ObjCPropertyDecl *property = *iter; Fields.push_back(MakeConstantString(property->getNameAsString())); Fields.push_back(llvm::ConstantInt::get(Int8Ty, @@ -1878,7 +1878,7 @@ llvm::Constant *CGObjCGNU::GeneratePropertyList(const ObjCImplementationDecl *OI iter != endIter ; iter++) { std::vector Fields; ObjCPropertyDecl *property = iter->getPropertyDecl(); - ObjCPropertyImplDecl *propertyImpl = &*iter; + ObjCPropertyImplDecl *propertyImpl = *iter; bool isSynthesized = (propertyImpl->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize); diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp index 42c91cb8e2..9b9ef79715 100644 --- a/lib/CodeGen/CGObjCMac.cpp +++ b/lib/CodeGen/CGObjCMac.cpp @@ -2121,7 +2121,7 @@ PushProtocolProperties(llvm::SmallPtrSet &PropertySet, PushProtocolProperties(PropertySet, Properties, Container, (*P), ObjCTypes); for (ObjCContainerDecl::prop_iterator I = PROTO->prop_begin(), E = PROTO->prop_end(); I != E; ++I) { - const ObjCPropertyDecl *PD = &*I; + const ObjCPropertyDecl *PD = *I; if (!PropertySet.insert(PD->getIdentifier())) continue; llvm::Constant *Prop[] = { @@ -2152,7 +2152,7 @@ llvm::Constant *CGObjCCommonMac::EmitPropertyList(Twine Name, llvm::SmallPtrSet PropertySet; for (ObjCContainerDecl::prop_iterator I = OCD->prop_begin(), E = OCD->prop_end(); I != E; ++I) { - const ObjCPropertyDecl *PD = &*I; + const ObjCPropertyDecl *PD = *I; PropertySet.insert(PD->getIdentifier()); llvm::Constant *Prop[] = { GetPropertyName(PD->getIdentifier()), @@ -2403,7 +2403,7 @@ void CGObjCMac::GenerateClass(const ObjCImplementationDecl *ID) { for (ObjCImplementationDecl::propimpl_iterator i = ID->propimpl_begin(), e = ID->propimpl_end(); i != e; ++i) { - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize) { ObjCPropertyDecl *PD = PID->getPropertyDecl(); @@ -3821,7 +3821,7 @@ void CGObjCCommonMac::BuildAggrIvarRecordLayout(const RecordType *RT, SmallVector Fields; for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) - Fields.push_back(&*i); + Fields.push_back(*i); llvm::Type *Ty = CGM.getTypes().ConvertType(QualType(RT, 0)); const llvm::StructLayout *RecLayout = CGM.getTargetData().getStructLayout(cast(Ty)); @@ -5004,7 +5004,7 @@ llvm::GlobalVariable * CGObjCNonFragileABIMac::BuildClassRoTInitializer( } for (ObjCImplementationDecl::propimpl_iterator i = ID->propimpl_begin(), e = ID->propimpl_end(); i != e; ++i) { - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize){ ObjCPropertyDecl *PD = PID->getPropertyDecl(); diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp index 379bf2d56a..382cbfd10d 100644 --- a/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -538,7 +538,7 @@ void CGRecordLayoutBuilder::LayoutUnion(const RecordDecl *D) { fieldEnd = D->field_end(); field != fieldEnd; ++field, ++fieldNo) { assert(layout.getFieldOffset(fieldNo) == 0 && "Union field offset did not start at the beginning of record!"); - llvm::Type *fieldType = LayoutUnionField(&*field, layout); + llvm::Type *fieldType = LayoutUnionField(*field, layout); if (!fieldType) continue; @@ -818,7 +818,7 @@ bool CGRecordLayoutBuilder::LayoutFields(const RecordDecl *D) { if (IsMsStruct) { // Zero-length bitfields following non-bitfield members are // ignored: - const FieldDecl *FD = &*Field; + const FieldDecl *FD = *Field; if (Types.getContext().ZeroBitfieldFollowsNonBitfield(FD, LastFD)) { --FieldNo; continue; @@ -826,7 +826,7 @@ bool CGRecordLayoutBuilder::LayoutFields(const RecordDecl *D) { LastFD = FD; } - if (!LayoutField(&*Field, Layout.getFieldOffset(FieldNo))) { + if (!LayoutField(*Field, Layout.getFieldOffset(FieldNo))) { assert(!Packed && "Could not layout fields even with a packed LLVM struct!"); return false; @@ -1061,7 +1061,7 @@ CGRecordLayout *CodeGenTypes::ComputeRecordLayout(const RecordDecl *D, const FieldDecl *LastFD = 0; bool IsMsStruct = D->hasAttr(); for (unsigned i = 0, e = AST_RL.getFieldCount(); i != e; ++i, ++it) { - const FieldDecl *FD = &*it; + const FieldDecl *FD = *it; // For non-bit-fields, just check that the LLVM struct offset matches the // AST offset. @@ -1122,7 +1122,7 @@ void CGRecordLayout::print(raw_ostream &OS) const { const RecordDecl *RD = it->first->getParent(); unsigned Index = 0; for (RecordDecl::field_iterator - it2 = RD->field_begin(); &*it2 != it->first; ++it2) + it2 = RD->field_begin(); *it2 != it->first; ++it2) ++Index; BFIs.push_back(std::make_pair(Index, &it->second)); } diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index d1f2face78..e9ae98ff39 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -2365,7 +2365,7 @@ void CodeGenModule::EmitObjCPropertyImplementations(const ObjCImplementationDecl *D) { for (ObjCImplementationDecl::propimpl_iterator i = D->propimpl_begin(), e = D->propimpl_end(); i != e; ++i) { - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; // Dynamic is just for type-checking. if (PID->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize) { diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp index 34c7b428ed..e3d19dbf38 100644 --- a/lib/CodeGen/TargetInfo.cpp +++ b/lib/CodeGen/TargetInfo.cpp @@ -161,7 +161,7 @@ static bool isEmptyRecord(ASTContext &Context, QualType T, bool AllowArrays) { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) - if (!isEmptyField(Context, &*i, AllowArrays)) + if (!isEmptyField(Context, *i, AllowArrays)) return false; return true; } @@ -229,7 +229,7 @@ static const Type *isSingleElementStruct(QualType T, ASTContext &Context) { // Check for single element. for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; QualType FT = FD->getType(); // Ignore empty fields. @@ -301,7 +301,7 @@ static bool canExpandIndirectArgument(QualType Ty, ASTContext &Context) { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; if (!is32Or64BitBasicType(FD->getType(), Context)) return false; @@ -534,7 +534,7 @@ bool X86_32ABIInfo::shouldReturnTypeInRegister(QualType Ty, // passed in a register. for (RecordDecl::field_iterator i = RT->getDecl()->field_begin(), e = RT->getDecl()->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; // Empty fields are ignored. if (isEmptyField(Context, FD, true)) @@ -2603,7 +2603,7 @@ static bool isHomogeneousAggregate(QualType Ty, const Type *&Base, Members = 0; for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; uint64_t FldMembers; if (!isHomogeneousAggregate(FD->getType(), Base, Context, &FldMembers)) return false; @@ -2746,7 +2746,7 @@ static bool isIntegerLikeType(QualType Ty, ASTContext &Context, unsigned idx = 0; for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i, ++idx) { - const FieldDecl *FD = &*i; + const FieldDecl *FD = *i; // Bit-fields are not addressable, we only need to verify they are "integer // like". We still have to disallow a subsequent non-bitfield, for example: diff --git a/lib/Frontend/LayoutOverrideSource.cpp b/lib/Frontend/LayoutOverrideSource.cpp index ca1dcd3df0..eb7865e112 100644 --- a/lib/Frontend/LayoutOverrideSource.cpp +++ b/lib/Frontend/LayoutOverrideSource.cpp @@ -174,7 +174,7 @@ LayoutOverrideSource::layoutRecordType(const RecordDecl *Record, if (NumFields >= Known->second.FieldOffsets.size()) continue; - FieldOffsets[&*F] = Known->second.FieldOffsets[NumFields]; + FieldOffsets[*F] = Known->second.FieldOffsets[NumFields]; } // Wrong number of fields. diff --git a/lib/Rewrite/RewriteModernObjC.cpp b/lib/Rewrite/RewriteModernObjC.cpp index ecbf307a56..644ac57a94 100644 --- a/lib/Rewrite/RewriteModernObjC.cpp +++ b/lib/Rewrite/RewriteModernObjC.cpp @@ -1077,7 +1077,7 @@ void RewriteModernObjC::RewriteCategoryDecl(ObjCCategoryDecl *CatDecl) { for (ObjCCategoryDecl::prop_iterator I = CatDecl->prop_begin(), E = CatDecl->prop_end(); I != E; ++I) - RewriteProperty(&*I); + RewriteProperty(*I); for (ObjCCategoryDecl::instmeth_iterator I = CatDecl->instmeth_begin(), E = CatDecl->instmeth_end(); @@ -1111,7 +1111,7 @@ void RewriteModernObjC::RewriteProtocolDecl(ObjCProtocolDecl *PDecl) { for (ObjCInterfaceDecl::prop_iterator I = PDecl->prop_begin(), E = PDecl->prop_end(); I != E; ++I) - RewriteProperty(&*I); + RewriteProperty(*I); // Lastly, comment out the @end. SourceLocation LocEnd = PDecl->getAtEndRange().getBegin(); @@ -1343,7 +1343,7 @@ void RewriteModernObjC::RewriteImplementationDecl(Decl *OID) { I = IMD ? IMD->propimpl_begin() : CID->propimpl_begin(), E = IMD ? IMD->propimpl_end() : CID->propimpl_end(); I != E; ++I) { - RewritePropertyImplDecl(&*I, IMD, CID); + RewritePropertyImplDecl(*I, IMD, CID); } InsertText(IMD ? IMD->getLocEnd() : CID->getLocEnd(), "// "); @@ -1371,7 +1371,7 @@ void RewriteModernObjC::RewriteInterfaceDecl(ObjCInterfaceDecl *ClassDecl) { for (ObjCInterfaceDecl::prop_iterator I = ClassDecl->prop_begin(), E = ClassDecl->prop_end(); I != E; ++I) - RewriteProperty(&*I); + RewriteProperty(*I); for (ObjCInterfaceDecl::instmeth_iterator I = ClassDecl->instmeth_begin(), E = ClassDecl->instmeth_end(); I != E; ++I) @@ -3636,7 +3636,7 @@ bool RewriteModernObjC::RewriteObjCFieldDeclType(QualType &Type, Result += " {\n"; for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - FieldDecl *FD = &*i; + FieldDecl *FD = *i; RewriteObjCFieldDecl(FD, Result); } Result += "\t} "; @@ -5549,7 +5549,7 @@ Stmt *RewriteModernObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) { void RewriteModernObjC::RewriteRecordBody(RecordDecl *RD) { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - FieldDecl *FD = &*i; + FieldDecl *FD = *i; if (isTopLevelBlockPointerType(FD->getType())) RewriteBlockPointerDecl(FD); if (FD->getType()->isObjCQualifiedIdType() || @@ -6750,7 +6750,7 @@ void RewriteModernObjC::RewriteObjCProtocolMetaData(ObjCProtocolDecl *PDecl, std::vector ProtocolProperties; for (ObjCContainerDecl::prop_iterator I = PDecl->prop_begin(), E = PDecl->prop_end(); I != E; ++I) - ProtocolProperties.push_back(&*I); + ProtocolProperties.push_back(*I); Write_prop_list_t_initializer(*this, Context, Result, ProtocolProperties, /* Container */0, @@ -6971,7 +6971,7 @@ void RewriteModernObjC::RewriteObjCClassMetaData(ObjCImplementationDecl *IDecl, std::vector ClassProperties; for (ObjCContainerDecl::prop_iterator I = CDecl->prop_begin(), E = CDecl->prop_end(); I != E; ++I) - ClassProperties.push_back(&*I); + ClassProperties.push_back(*I); Write_prop_list_t_initializer(*this, Context, Result, ClassProperties, /* Container */IDecl, @@ -7233,7 +7233,7 @@ void RewriteModernObjC::RewriteObjCCategoryImplDecl(ObjCCategoryImplDecl *IDecl, std::vector ClassProperties; for (ObjCContainerDecl::prop_iterator I = CDecl->prop_begin(), E = CDecl->prop_end(); I != E; ++I) - ClassProperties.push_back(&*I); + ClassProperties.push_back(*I); Write_prop_list_t_initializer(*this, Context, Result, ClassProperties, /* Container */IDecl, diff --git a/lib/Rewrite/RewriteObjC.cpp b/lib/Rewrite/RewriteObjC.cpp index 396c7aeec2..6c7b20befd 100644 --- a/lib/Rewrite/RewriteObjC.cpp +++ b/lib/Rewrite/RewriteObjC.cpp @@ -967,7 +967,7 @@ void RewriteObjC::RewriteCategoryDecl(ObjCCategoryDecl *CatDecl) { for (ObjCCategoryDecl::prop_iterator I = CatDecl->prop_begin(), E = CatDecl->prop_end(); I != E; ++I) - RewriteProperty(&*I); + RewriteProperty(*I); for (ObjCCategoryDecl::instmeth_iterator I = CatDecl->instmeth_begin(), E = CatDecl->instmeth_end(); @@ -1001,7 +1001,7 @@ void RewriteObjC::RewriteProtocolDecl(ObjCProtocolDecl *PDecl) { for (ObjCInterfaceDecl::prop_iterator I = PDecl->prop_begin(), E = PDecl->prop_end(); I != E; ++I) - RewriteProperty(&*I); + RewriteProperty(*I); // Lastly, comment out the @end. SourceLocation LocEnd = PDecl->getAtEndRange().getBegin(); @@ -1207,7 +1207,7 @@ void RewriteObjC::RewriteImplementationDecl(Decl *OID) { I = IMD ? IMD->propimpl_begin() : CID->propimpl_begin(), E = IMD ? IMD->propimpl_end() : CID->propimpl_end(); I != E; ++I) { - RewritePropertyImplDecl(&*I, IMD, CID); + RewritePropertyImplDecl(*I, IMD, CID); } InsertText(IMD ? IMD->getLocEnd() : CID->getLocEnd(), "// "); @@ -1233,7 +1233,7 @@ void RewriteObjC::RewriteInterfaceDecl(ObjCInterfaceDecl *ClassDecl) { for (ObjCInterfaceDecl::prop_iterator I = ClassDecl->prop_begin(), E = ClassDecl->prop_end(); I != E; ++I) - RewriteProperty(&*I); + RewriteProperty(*I); for (ObjCInterfaceDecl::instmeth_iterator I = ClassDecl->instmeth_begin(), E = ClassDecl->instmeth_end(); I != E; ++I) @@ -4881,7 +4881,7 @@ Stmt *RewriteObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) { void RewriteObjC::RewriteRecordBody(RecordDecl *RD) { for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end(); i != e; ++i) { - FieldDecl *FD = &*i; + FieldDecl *FD = *i; if (isTopLevelBlockPointerType(FD->getType())) RewriteBlockPointerDecl(FD); if (FD->getType()->isObjCQualifiedIdType() || @@ -5434,7 +5434,7 @@ void RewriteObjCFragileABI::RewriteObjCClassMetaData(ObjCImplementationDecl *IDe for (ObjCInterfaceDecl::ivar_iterator IV = IDecl->ivar_begin(), IVEnd = IDecl->ivar_end(); IV != IVEnd; ++IV) - IVars.push_back(&*IV); + IVars.push_back(*IV); IVI = IDecl->ivar_begin(); IVE = IDecl->ivar_end(); } else { @@ -5445,22 +5445,22 @@ void RewriteObjCFragileABI::RewriteObjCClassMetaData(ObjCImplementationDecl *IDe Result += IVI->getNameAsString(); Result += "\", \""; std::string TmpString, StrEncoding; - Context->getObjCEncodingForType(IVI->getType(), TmpString, &*IVI); + Context->getObjCEncodingForType(IVI->getType(), TmpString, *IVI); QuoteDoublequotes(TmpString, StrEncoding); Result += StrEncoding; Result += "\", "; - RewriteIvarOffsetComputation(&*IVI, Result); + RewriteIvarOffsetComputation(*IVI, Result); Result += "}\n"; for (++IVI; IVI != IVE; ++IVI) { Result += "\t ,{\""; Result += IVI->getNameAsString(); Result += "\", \""; std::string TmpString, StrEncoding; - Context->getObjCEncodingForType(IVI->getType(), TmpString, &*IVI); + Context->getObjCEncodingForType(IVI->getType(), TmpString, *IVI); QuoteDoublequotes(TmpString, StrEncoding); Result += StrEncoding; Result += "\", "; - RewriteIvarOffsetComputation(&*IVI, Result); + RewriteIvarOffsetComputation(*IVI, Result); Result += "}\n"; } diff --git a/lib/Sema/IdentifierResolver.cpp b/lib/Sema/IdentifierResolver.cpp index 4c6898cb7a..4d62cab167 100644 --- a/lib/Sema/IdentifierResolver.cpp +++ b/lib/Sema/IdentifierResolver.cpp @@ -304,7 +304,7 @@ static DeclMatchKind compareDeclarations(NamedDecl *Existing, NamedDecl *New) { for (Decl::redecl_iterator RD = New->redecls_begin(), RDEnd = New->redecls_end(); RD != RDEnd; ++RD) { - if (RD == Existing) + if (*RD == Existing) return DMK_Replace; if (RD->isCanonicalDecl()) diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index 24f536fa06..50d3f30549 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -3348,7 +3348,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 @@ -3363,11 +3363,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); } @@ -3672,10 +3672,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); } @@ -4037,7 +4037,7 @@ void Sema::CodeCompleteNamespaceDecl(Scope *S) { for (DeclContext::specific_decl_iterator 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. @@ -4193,7 +4193,7 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, SawLastInitializer = NumInitializers > 0 && Initializers[NumInitializers - 1]->isAnyMemberInitializer() && - Initializers[NumInitializers - 1]->getAnyMember() == &*Field; + Initializers[NumInitializers - 1]->getAnyMember() == *Field; continue; } @@ -4210,7 +4210,7 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, : CCP_MemberDeclaration, CXCursor_MemberRef, CXAvailability_Available, - &*Field)); + *Field)); SawLastInitializer = false; } Results.ExitScope(); @@ -4701,14 +4701,14 @@ static void AddObjCMethods(ObjCContainerDecl *Container, 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())) continue; - Result R = Result(&*M, 0); + Result R = Result(*M, 0); R.StartParameter = NumSelIdents; R.AllParametersAreInformative = (WantKind != MK_Any); if (!InOriginalClass) @@ -6026,7 +6026,7 @@ static void FindImplementableMethods(ASTContext &Context, !Context.hasSameUnqualifiedType(ReturnType, M->getResultType())) continue; - KnownMethods[M->getSelector()] = std::make_pair(&*M, InOriginalClass); + KnownMethods[M->getSelector()] = std::make_pair(*M, InOriginalClass); } } } @@ -6842,7 +6842,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 ec1f460f53..8d4ce2873b 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -7443,7 +7443,7 @@ Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D) { if (EnumDecl *ED = dyn_cast(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); } } } @@ -9271,7 +9271,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. diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp index 0f95747a71..19ac6160c5 100644 --- a/lib/Sema/SemaDeclAttr.cpp +++ b/lib/Sema/SemaDeclAttr.cpp @@ -2835,7 +2835,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 e7a22165da..2b7d1bfcd8 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); } } @@ -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; } @@ -3150,7 +3150,7 @@ DiagnoseBaseOrMemInitializerOrder(Sema &SemaRef, if (Field->isUnnamedBitfield()) continue; - IdealInitKeys.push_back(GetKeyForTopLevelField(&*Field)); + IdealInitKeys.push_back(GetKeyForTopLevelField(*Field)); } unsigned NumIdealInits = IdealInitKeys.size(); @@ -3350,7 +3350,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; @@ -3807,7 +3807,7 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { MEnd = Record->method_end(); M != MEnd; ++M) { if (!M->isStatic()) - DiagnoseHiddenVirtualMethods(Record, &*M); + DiagnoseHiddenVirtualMethods(Record, *M); } } @@ -3865,7 +3865,7 @@ void Sema::CheckExplicitlyDefaultedMethods(CXXRecordDecl *Record) { ME = Record->method_end(); MI != ME; ++MI) if (!MI->isInvalidDecl() && MI->isExplicitlyDefaulted()) - CheckExplicitlyDefaultedSpecialMember(&*MI); + CheckExplicitlyDefaultedSpecialMember(*MI); } void Sema::CheckExplicitlyDefaultedSpecialMember(CXXMethodDecl *MD) { @@ -4327,7 +4327,7 @@ bool SpecialMemberDeletionInfo::shouldDeleteForField(FieldDecl *FD) { CXXRecordDecl *UnionFieldRecord = UnionFieldType->getAsCXXRecordDecl(); if (UnionFieldRecord && - shouldDeleteForClassSubobject(UnionFieldRecord, &*UI)) + shouldDeleteForClassSubobject(UnionFieldRecord, *UI)) return true; } @@ -4464,7 +4464,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()) @@ -6816,7 +6816,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(); @@ -7647,7 +7647,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, @@ -8182,7 +8182,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, @@ -10667,7 +10667,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 3bcc8ce650..33047b2e5e 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -695,7 +695,7 @@ void Sema::DiagnoseClassExtensionDupMethods(ObjCCategoryDecl *CAT, llvm::DenseMap 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; } @@ -703,7 +703,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) @@ -1065,7 +1065,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"); @@ -2154,7 +2154,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()) { @@ -2292,7 +2292,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(ClassDecl)) { @@ -2308,7 +2308,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 17ea7705af..9f0378ac0e 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -5706,7 +5706,7 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, if (RHSType->isPointerType()) if (RHSType->castAs()->getPointeeType()->isVoidType()) { RHS = ImpCastExprToType(RHS.take(), it->getType(), CK_BitCast); - InitField = &*it; + InitField = *it; break; } @@ -5714,7 +5714,7 @@ Sema::CheckTransparentUnionArgumentConstraints(QualType ArgType, Expr::NPC_ValueDependentIsNull)) { RHS = ImpCastExprToType(RHS.take(), it->getType(), CK_NullToPointer); - InitField = &*it; + InitField = *it; break; } } @@ -5723,7 +5723,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 66a64a9e5c..ae75b268fe 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(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); @@ -1863,7 +1863,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, 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 51a44a9542..f64be51744 100644 --- a/lib/Sema/SemaLambda.cpp +++ b/lib/Sema/SemaLambda.cpp @@ -444,7 +444,7 @@ void Sema::ActOnLambdaError(SourceLocation StartLoc, Scope *CurScope, SmallVector Fields; for (RecordDecl::field_iterator i = Class->field_begin(), e = Class->field_end(); i != e; ++i) - Fields.push_back(&*i); + Fields.push_back(*i); ActOnFields(0, Class->getLocation(), Class, Fields, SourceLocation(), SourceLocation(), 0); CheckCompletedCXXClass(Class); @@ -690,7 +690,7 @@ ExprResult Sema::ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body, SmallVector Fields; for (RecordDecl::field_iterator i = Class->field_begin(), e = Class->field_end(); i != e; ++i) - Fields.push_back(&*i); + Fields.push_back(*i); ActOnFields(0, Class->getLocation(), Class, Fields, SourceLocation(), SourceLocation(), 0); CheckCompletedCXXClass(Class); diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp index 563b97f148..1ee594c2a3 100644 --- a/lib/Sema/SemaLookup.cpp +++ b/lib/Sema/SemaLookup.cpp @@ -1069,7 +1069,7 @@ static NamedDecl *getVisibleDecl(NamedDecl *D) { for (Decl::redecl_iterator RD = D->redecls_begin(), RDEnd = D->redecls_end(); RD != RDEnd; ++RD) { - if (NamedDecl *ND = dyn_cast(RD)) { + if (NamedDecl *ND = dyn_cast(*RD)) { if (LookupResult::isVisible(ND)) return ND; } diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp index fb49e9f50c..52859d4f6d 100644 --- a/lib/Sema/SemaObjCProperty.cpp +++ b/lib/Sema/SemaObjCProperty.cpp @@ -1154,11 +1154,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()); @@ -1180,7 +1180,7 @@ 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) @@ -1188,13 +1188,13 @@ Sema::MatchOneProtocolPropertiesInClass(Decl *CDecl, 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) @@ -1202,7 +1202,7 @@ Sema::MatchOneProtocolPropertiesInClass(Decl *CDecl, break; if (CP != CE) // Property protocol already exist in class. Diagnose any mismatch. - DiagnosePropertyMismatch(&*CP, Pr, PDecl->getIdentifier()); + DiagnosePropertyMismatch(*CP, Pr, PDecl->getIdentifier()); } } @@ -1318,7 +1318,7 @@ void Sema::CollectImmediateProperties(ObjCContainerDecl *CDecl, if (ObjCInterfaceDecl *IDecl = dyn_cast(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. @@ -1331,7 +1331,7 @@ void Sema::CollectImmediateProperties(ObjCContainerDecl *CDecl, if (!CATDecl->IsClassExtension()) for (ObjCContainerDecl::prop_iterator P = CATDecl->prop_begin(), E = CATDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = &*P; + ObjCPropertyDecl *Prop = *P; PropMap[Prop->getIdentifier()] = Prop; } // scan through class's protocols. @@ -1342,7 +1342,7 @@ void Sema::CollectImmediateProperties(ObjCContainerDecl *CDecl, else if (ObjCProtocolDecl *PDecl = dyn_cast(CDecl)) { for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(), E = PDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = &*P; + ObjCPropertyDecl *Prop = *P; ObjCPropertyDecl *PropertyFromSuper = SuperPropMap[Prop->getIdentifier()]; // Exclude property for protocols which conform to class's super-class, // as super-class has to implement the property. @@ -1368,7 +1368,7 @@ static void CollectClassPropertyImplementations(ObjCContainerDecl *CDecl, if (ObjCInterfaceDecl *IDecl = dyn_cast(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; } for (ObjCInterfaceDecl::all_protocol_iterator @@ -1379,7 +1379,7 @@ static void CollectClassPropertyImplementations(ObjCContainerDecl *CDecl, else if (ObjCProtocolDecl *PDecl = dyn_cast(CDecl)) { for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(), E = PDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = &*P; + ObjCPropertyDecl *Prop = *P; if (!PropMap.count(Prop->getIdentifier())) PropMap[Prop->getIdentifier()] = Prop; } @@ -1411,7 +1411,7 @@ ObjCPropertyDecl *Sema::LookupPropertyDecl(const ObjCContainerDecl *CDecl, dyn_cast(CDecl)) { for (ObjCContainerDecl::prop_iterator P = IDecl->prop_begin(), E = IDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = &*P; + ObjCPropertyDecl *Prop = *P; if (Prop->getIdentifier() == II) return Prop; } @@ -1428,7 +1428,7 @@ ObjCPropertyDecl *Sema::LookupPropertyDecl(const ObjCContainerDecl *CDecl, dyn_cast(CDecl)) { for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(), E = PDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = &*P; + ObjCPropertyDecl *Prop = *P; if (Prop->getIdentifier() == II) return Prop; } @@ -1587,7 +1587,7 @@ Sema::AtomicPropertySetterGetterRules (ObjCImplDecl* IMPDecl, for (ObjCContainerDecl::prop_iterator I = IDecl->prop_begin(), E = IDecl->prop_end(); I != E; ++I) { - ObjCPropertyDecl *Property = &*I; + ObjCPropertyDecl *Property = *I; ObjCMethodDecl *GetterMethod = 0; ObjCMethodDecl *SetterMethod = 0; bool LookedUpGetterSetter = false; @@ -1674,7 +1674,7 @@ void Sema::DiagnoseOwningPropertyGetterSynthesis(const ObjCImplementationDecl *D for (ObjCImplementationDecl::propimpl_iterator i = D->propimpl_begin(), e = D->propimpl_end(); i != e; ++i) { - ObjCPropertyImplDecl *PID = &*i; + ObjCPropertyImplDecl *PID = *i; if (PID->getPropertyImplementation() != ObjCPropertyImplDecl::Synthesize) continue; diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp index 028636b90b..20b0d2f166 100644 --- a/lib/Sema/SemaStmt.cpp +++ b/lib/Sema/SemaStmt.cpp @@ -947,7 +947,7 @@ Sema::ActOnFinishSwitchStmt(SourceLocation SwitchLoc, Stmt *Switch, EDI != ED->enumerator_end(); ++EDI) { llvm::APSInt Val = EDI->getInitVal(); AdjustAPSInt(Val, CondWidth, CondIsSigned); - EnumVals.push_back(std::make_pair(Val, &*EDI)); + EnumVals.push_back(std::make_pair(Val, *EDI)); } std::stable_sort(EnumVals.begin(), EnumVals.end(), CmpEnumVals); EnumValsTy::iterator EIend = diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index e79c8916b4..9ff6a490d6 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -672,7 +672,7 @@ void TemplateDeclInstantiator::InstantiateEnumDefinition( } if (EnumConst) { - SemaRef.InstantiateAttrs(TemplateArgs, &*EC, EnumConst); + SemaRef.InstantiateAttrs(TemplateArgs, *EC, EnumConst); EnumConst->setAccess(Enum->getAccess()); Enum->addDecl(EnumConst); @@ -683,7 +683,7 @@ void TemplateDeclInstantiator::InstantiateEnumDefinition( !Enum->isScoped()) { // If the enumeration is within a function or method, record the enum // constant as a local. - SemaRef.CurrentInstantiationScope->InstantiatedLocal(&*EC, EnumConst); + SemaRef.CurrentInstantiationScope->InstantiatedLocal(*EC, EnumConst); } } } diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp index 20526bac39..209c020fff 100644 --- a/lib/Sema/SemaType.cpp +++ b/lib/Sema/SemaType.cpp @@ -4362,7 +4362,7 @@ bool Sema::RequireLiteralType(SourceLocation Loc, QualType T, if (!I->getType()->isLiteralType() || I->getType().isVolatileQualified()) { Diag(I->getLocation(), diag::note_non_literal_field) - << RD << &*I << I->getType() + << RD << *I << I->getType() << I->getType().isVolatileQualified(); return true; } diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 21421029cc..a9092a43aa 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -5055,7 +5055,7 @@ static void PassObjCImplDeclToConsumer(ObjCImplDecl *ImplD, for (ObjCImplDecl::method_iterator I = ImplD->meth_begin(), E = ImplD->meth_end(); I != E; ++I) - Consumer->HandleInterestingDecl(DeclGroupRef(&*I)); + Consumer->HandleInterestingDecl(DeclGroupRef(*I)); Consumer->HandleInterestingDecl(DeclGroupRef(ImplD)); } diff --git a/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp b/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp index 6175f9d2d8..6d9ce0a6c5 100644 --- a/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp @@ -143,8 +143,8 @@ bool CallAndMessageChecker::PreVisitProcessArg(CheckerContext &C, assert(RD && "Referred record has no definition"); for (RecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I!=E; ++I) { - const FieldRegion *FR = MrMgr.getFieldRegion(&*I, R); - FieldChain.push_back(&*I); + const FieldRegion *FR = MrMgr.getFieldRegion(*I, R); + FieldChain.push_back(*I); T = I->getType(); if (T->getAsStructureType()) { if (Find(FR)) diff --git a/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp b/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp index 81b548b13f..7a25865571 100644 --- a/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp +++ b/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp @@ -114,7 +114,7 @@ static void checkObjCDealloc(const ObjCImplementationDecl *D, for (ObjCInterfaceDecl::ivar_iterator I=ID->ivar_begin(), E=ID->ivar_end(); I!=E; ++I) { - ObjCIvarDecl *ID = &*I; + ObjCIvarDecl *ID = *I; QualType T = ID->getType(); if (!T->isObjCObjectPointerType() || @@ -261,7 +261,7 @@ static void checkObjCDealloc(const ObjCImplementationDecl *D, } PathDiagnosticLocation SDLoc = - PathDiagnosticLocation::createBegin(&*I, BR.getSourceManager()); + PathDiagnosticLocation::createBegin(*I, BR.getSourceManager()); BR.EmitBasicReport(MD, name, categories::CoreFoundationObjectiveC, os.str(), SDLoc); diff --git a/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp b/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp index 7e5720deac..757a4ce288 100644 --- a/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp @@ -231,7 +231,7 @@ static void CheckASTMemory(const CXXRecordDecl *R, BugReporter &BR) { for (RecordDecl::field_iterator I = R->field_begin(), E = R->field_end(); I != E; ++I) { ASTFieldVisitor walker(R, BR); - walker.Visit(&*I); + walker.Visit(*I); } } @@ -247,7 +247,7 @@ void ASTFieldVisitor::Visit(FieldDecl *D) { const RecordDecl *RD = RT->getDecl()->getDefinition(); for (RecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I != E; ++I) - Visit(&*I); + Visit(*I); } FieldChain.pop_back(); diff --git a/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp b/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp index 8792144dde..582269c332 100644 --- a/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp @@ -85,7 +85,7 @@ static void Scan(IvarUsageMap& M, const ObjCContainerDecl *D) { // to an ivar. for (ObjCImplementationDecl::propimpl_iterator I = ID->propimpl_begin(), E = ID->propimpl_end(); I!=E; ++I) - Scan(M, &*I); + Scan(M, *I); // Scan the associated categories as well. for (const ObjCCategoryDecl *CD = @@ -118,7 +118,7 @@ static void checkObjCUnusedIvar(const ObjCImplementationDecl *D, for (ObjCInterfaceDecl::ivar_iterator I=ID->ivar_begin(), E=ID->ivar_end(); I!=E; ++I) { - const ObjCIvarDecl *ID = &*I; + const ObjCIvarDecl *ID = *I; // Ignore ivars that... // (a) aren't private diff --git a/lib/StaticAnalyzer/Core/MemRegion.cpp b/lib/StaticAnalyzer/Core/MemRegion.cpp index dc309a0e42..c0c7154927 100644 --- a/lib/StaticAnalyzer/Core/MemRegion.cpp +++ b/lib/StaticAnalyzer/Core/MemRegion.cpp @@ -1053,7 +1053,7 @@ RegionOffset MemRegion::getAsOffset() const { unsigned idx = 0; for (RecordDecl::field_iterator FI = RD->field_begin(), FE = RD->field_end(); FI != FE; ++FI, ++idx) - if (FR->getDecl() == &*FI) + if (FR->getDecl() == *FI) break; const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD); diff --git a/lib/StaticAnalyzer/Core/RegionStore.cpp b/lib/StaticAnalyzer/Core/RegionStore.cpp index 3a932bc7e2..9c00d96343 100644 --- a/lib/StaticAnalyzer/Core/RegionStore.cpp +++ b/lib/StaticAnalyzer/Core/RegionStore.cpp @@ -1746,7 +1746,7 @@ StoreRef RegionStoreManager::BindStruct(Store store, const TypedValueRegion* R, continue; QualType FTy = FI->getType(); - const FieldRegion* FR = MRMgr.getFieldRegion(&*FI, R); + const FieldRegion* FR = MRMgr.getFieldRegion(*FI, R); if (FTy->isArrayType()) newStore = BindArray(newStore.getStore(), FR, *VI); diff --git a/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp b/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp index 2e37be0c6b..29c65f8f3e 100644 --- a/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp +++ b/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp @@ -821,9 +821,9 @@ SVal SimpleSValBuilder::evalBinOpLL(ProgramStateRef state, bool leftFirst = (op == BO_LT || op == BO_LE); for (RecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); I!=E; ++I) { - if (&*I == LeftFD) + if (*I == LeftFD) return makeTruthVal(leftFirst, resultTy); - if (&*I == RightFD) + if (*I == RightFD) return makeTruthVal(!leftFirst, resultTy); } -- 2.40.0