From a797c529a63d2e1e6c51a2228b24c808182502bf Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 7 May 2014 06:21:57 +0000 Subject: [C++11] Use 'nullptr'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208163 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Rewrite/Core/DeltaTree.cpp | 4 +- lib/Rewrite/Core/RewriteRope.cpp | 30 +-- lib/Rewrite/Core/Rewriter.cpp | 4 +- lib/Rewrite/Frontend/FrontendActions.cpp | 8 +- lib/Rewrite/Frontend/InclusionRewriter.cpp | 18 +- lib/Rewrite/Frontend/RewriteModernObjC.cpp | 281 ++++++++++++++--------------- lib/Rewrite/Frontend/RewriteObjC.cpp | 206 ++++++++++----------- 7 files changed, 276 insertions(+), 275 deletions(-) (limited to 'lib/Rewrite') diff --git a/lib/Rewrite/Core/DeltaTree.cpp b/lib/Rewrite/Core/DeltaTree.cpp index 7a7f15b7d3..352fab077a 100644 --- a/lib/Rewrite/Core/DeltaTree.cpp +++ b/lib/Rewrite/Core/DeltaTree.cpp @@ -216,9 +216,9 @@ bool DeltaTreeNode::DoInsertion(unsigned FileIndex, int Delta, DoSplit(*InsertRes); if (InsertRes->Split.FileLoc > FileIndex) - InsertRes->LHS->DoInsertion(FileIndex, Delta, 0 /*can't fail*/); + InsertRes->LHS->DoInsertion(FileIndex, Delta, nullptr /*can't fail*/); else - InsertRes->RHS->DoInsertion(FileIndex, Delta, 0 /*can't fail*/); + InsertRes->RHS->DoInsertion(FileIndex, Delta, nullptr /*can't fail*/); return true; } diff --git a/lib/Rewrite/Core/RewriteRope.cpp b/lib/Rewrite/Core/RewriteRope.cpp index 135f42a207..ef8abfcadc 100644 --- a/lib/Rewrite/Core/RewriteRope.cpp +++ b/lib/Rewrite/Core/RewriteRope.cpp @@ -146,7 +146,7 @@ namespace { RopePieceBTreeLeaf **PrevLeaf, *NextLeaf; public: RopePieceBTreeLeaf() : RopePieceBTreeNode(true), NumPieces(0), - PrevLeaf(0), NextLeaf(0) {} + PrevLeaf(nullptr), NextLeaf(nullptr) {} ~RopePieceBTreeLeaf() { if (PrevLeaf || NextLeaf) removeFromLeafInOrder(); @@ -171,7 +171,7 @@ namespace { const RopePieceBTreeLeaf *getNextLeafInOrder() const { return NextLeaf; } void insertAfterLeafInOrder(RopePieceBTreeLeaf *Node) { - assert(PrevLeaf == 0 && NextLeaf == 0 && "Already in ordering"); + assert(!PrevLeaf && !NextLeaf && "Already in ordering"); NextLeaf = Node->NextLeaf; if (NextLeaf) @@ -186,7 +186,7 @@ namespace { if (NextLeaf) NextLeaf->PrevLeaf = PrevLeaf; } else if (NextLeaf) { - NextLeaf->PrevLeaf = 0; + NextLeaf->PrevLeaf = nullptr; } } @@ -236,7 +236,7 @@ RopePieceBTreeNode *RopePieceBTreeLeaf::split(unsigned Offset) { // specified offset so find it. if (Offset == 0 || Offset == size()) { // Fastpath for a common case. There is already a splitpoint at the end. - return 0; + return nullptr; } // Find the piece that this offset lands in. @@ -250,7 +250,7 @@ RopePieceBTreeNode *RopePieceBTreeLeaf::split(unsigned Offset) { // If there is already a split point at the specified offset, just return // success. if (PieceOffs == Offset) - return 0; + return nullptr; // Otherwise, we need to split piece 'i' at Offset-PieceOffs. Convert Offset // to being Piece relative. @@ -296,7 +296,7 @@ RopePieceBTreeNode *RopePieceBTreeLeaf::insert(unsigned Offset, Pieces[i] = R; ++NumPieces; Size += R.size(); - return 0; + return nullptr; } // Otherwise, if this is leaf is full, split it in two halves. Since this @@ -470,7 +470,7 @@ namespace { RopePieceBTreeNode *RopePieceBTreeInterior::split(unsigned Offset) { // Figure out which child to split. if (Offset == 0 || Offset == size()) - return 0; // If we have an exact offset, we're already split. + return nullptr; // If we have an exact offset, we're already split. unsigned ChildOffset = 0; unsigned i = 0; @@ -479,12 +479,12 @@ RopePieceBTreeNode *RopePieceBTreeInterior::split(unsigned Offset) { // If already split there, we're done. if (ChildOffset == Offset) - return 0; + return nullptr; // Otherwise, recursively split the child. if (RopePieceBTreeNode *RHS = getChild(i)->split(Offset-ChildOffset)) return HandleChildPiece(i, RHS); - return 0; // Done! + return nullptr; // Done! } /// insert - Insert the specified ropepiece into this tree node at the @@ -515,7 +515,7 @@ RopePieceBTreeNode *RopePieceBTreeInterior::insert(unsigned Offset, if (RopePieceBTreeNode *RHS = getChild(i)->insert(Offset-ChildOffs, R)) return HandleChildPiece(i, RHS); - return 0; + return nullptr; } /// HandleChildPiece - A child propagated an insertion result up to us. @@ -531,7 +531,7 @@ RopePieceBTreeInterior::HandleChildPiece(unsigned i, RopePieceBTreeNode *RHS) { (getNumChildren()-i-1)*sizeof(Children[0])); Children[i+1] = RHS; ++NumChildren; - return 0; + return nullptr; } // Okay, this node is full. Split it in half, moving WidthFactor children to @@ -678,10 +678,10 @@ RopePieceBTreeIterator::RopePieceBTreeIterator(const void *n) { while (CurNode && getCN(CurNode)->getNumPieces() == 0) CurNode = getCN(CurNode)->getNextLeafInOrder(); - if (CurNode != 0) + if (CurNode) CurPiece = &getCN(CurNode)->getPiece(0); else // Empty tree, this is an end() iterator. - CurPiece = 0; + CurPiece = nullptr; CurChar = 0; } @@ -697,10 +697,10 @@ void RopePieceBTreeIterator::MoveToNextPiece() { CurNode = getCN(CurNode)->getNextLeafInOrder(); while (CurNode && getCN(CurNode)->getNumPieces() == 0); - if (CurNode != 0) + if (CurNode) CurPiece = &getCN(CurNode)->getPiece(0); else // Hit end(). - CurPiece = 0; + CurPiece = nullptr; CurChar = 0; } diff --git a/lib/Rewrite/Core/Rewriter.cpp b/lib/Rewrite/Core/Rewriter.cpp index 08352a24d8..c0f87d2a24 100644 --- a/lib/Rewrite/Core/Rewriter.cpp +++ b/lib/Rewrite/Core/Rewriter.cpp @@ -340,7 +340,7 @@ bool Rewriter::ReplaceStmt(Stmt *From, Stmt *To) { // Get the new text. std::string SStr; llvm::raw_string_ostream S(SStr); - To->printPretty(S, 0, PrintingPolicy(*LangOpts)); + To->printPretty(S, nullptr, PrintingPolicy(*LangOpts)); const std::string &Str = S.str(); ReplaceText(From->getLocStart(), Size, Str); @@ -350,7 +350,7 @@ bool Rewriter::ReplaceStmt(Stmt *From, Stmt *To) { std::string Rewriter::ConvertToString(Stmt *From) { std::string SStr; llvm::raw_string_ostream S(SStr); - From->printPretty(S, 0, PrintingPolicy(*LangOpts)); + From->printPretty(S, nullptr, PrintingPolicy(*LangOpts)); return S.str(); } diff --git a/lib/Rewrite/Frontend/FrontendActions.cpp b/lib/Rewrite/Frontend/FrontendActions.cpp index bf27efebe3..4394e993a4 100644 --- a/lib/Rewrite/Frontend/FrontendActions.cpp +++ b/lib/Rewrite/Frontend/FrontendActions.cpp @@ -34,7 +34,7 @@ ASTConsumer *HTMLPrintAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { if (raw_ostream *OS = CI.createDefaultOutputFile(false, InFile)) return CreateHTMLPrinter(OS, CI.getPreprocessor()); - return 0; + return nullptr; } FixItAction::FixItAction() {} @@ -127,8 +127,8 @@ bool FixItRecompile::BeginInvocation(CompilerInstance &CI) { err = Rewriter.WriteFixedFiles(&RewrittenFiles); FixAction->EndSourceFile(); - CI.setSourceManager(0); - CI.setFileManager(0); + CI.setSourceManager(nullptr); + CI.setFileManager(nullptr); } else { err = true; } @@ -163,7 +163,7 @@ ASTConsumer *RewriteObjCAction::CreateASTConsumer(CompilerInstance &CI, CI.getDiagnostics(), CI.getLangOpts(), CI.getDiagnosticOpts().NoRewriteMacros); } - return 0; + return nullptr; } void RewriteMacrosAction::ExecuteAction() { diff --git a/lib/Rewrite/Frontend/InclusionRewriter.cpp b/lib/Rewrite/Frontend/InclusionRewriter.cpp index 7700096a9a..aa7017baee 100644 --- a/lib/Rewrite/Frontend/InclusionRewriter.cpp +++ b/lib/Rewrite/Frontend/InclusionRewriter.cpp @@ -88,7 +88,7 @@ private: /// Initializes an InclusionRewriter with a \p PP source and \p OS destination. InclusionRewriter::InclusionRewriter(Preprocessor &PP, raw_ostream &OS, bool ShowLineMarkers) - : PP(PP), SM(PP.getSourceManager()), OS(OS), PredefinesBuffer(0), + : PP(PP), SM(PP.getSourceManager()), OS(OS), PredefinesBuffer(nullptr), ShowLineMarkers(ShowLineMarkers), LastInsertedFileChange(FileChanges.end()) { // If we're in microsoft mode, use normal #line instead of line markers. @@ -191,7 +191,7 @@ InclusionRewriter::FindFileChangeLocation(SourceLocation Loc) const { FileChangeMap::const_iterator I = FileChanges.find(Loc.getRawEncoding()); if (I != FileChanges.end()) return &I->second; - return NULL; + return nullptr; } /// Detect the likely line ending style of \p FromFile by examining the first @@ -200,7 +200,7 @@ static StringRef DetectEOL(const MemoryBuffer &FromFile) { // detect what line endings the file uses, so that added content does not mix // the style const char *Pos = strchr(FromFile.getBufferStart(), '\n'); - if (Pos == NULL) + if (!Pos) return "\n"; if (Pos + 1 < FromFile.getBufferEnd() && Pos[1] == '\r') return "\n\r"; @@ -334,10 +334,11 @@ bool InclusionRewriter::HandleHasInclude( bool isAngled = PP.GetIncludeFilenameSpelling(Tok.getLocation(), Filename); const DirectoryLookup *CurDir; const FileEntry *File = PP.getHeaderSearchInfo().LookupFile( - Filename, SourceLocation(), isAngled, 0, CurDir, - PP.getSourceManager().getFileEntryForID(FileId), 0, 0, 0, false); + Filename, SourceLocation(), isAngled, nullptr, CurDir, + PP.getSourceManager().getFileEntryForID(FileId), nullptr, nullptr, + nullptr, false); - FileExists = File != 0; + FileExists = File != nullptr; return true; } @@ -383,7 +384,7 @@ bool InclusionRewriter::Process(FileID FileId, RawLex.LexFromRawLexer(RawToken); if (RawToken.is(tok::raw_identifier)) PP.LookUpIdentifierInfo(RawToken); - if (RawToken.getIdentifierInfo() != NULL) { + if (RawToken.getIdentifierInfo() != nullptr) { switch (RawToken.getIdentifierInfo()->getPPKeywordID()) { case tok::pp_include: case tok::pp_include_next: @@ -448,7 +449,8 @@ bool InclusionRewriter::Process(FileID FileId, // Rewrite __has_include(x) if (RawToken.getIdentifierInfo()->isStr("__has_include")) { - if (!HandleHasInclude(FileId, RawLex, 0, RawToken, HasFile)) + if (!HandleHasInclude(FileId, RawLex, nullptr, RawToken, + HasFile)) continue; // Rewrite __has_include_next(x) } else if (RawToken.getIdentifierInfo()->isStr( diff --git a/lib/Rewrite/Frontend/RewriteModernObjC.cpp b/lib/Rewrite/Frontend/RewriteModernObjC.cpp index 65a5dc5162..3cacbdddf3 100644 --- a/lib/Rewrite/Frontend/RewriteModernObjC.cpp +++ b/lib/Rewrite/Frontend/RewriteModernObjC.cpp @@ -280,7 +280,7 @@ namespace { // Get the new text. std::string SStr; llvm::raw_string_ostream S(SStr); - New->printPretty(S, 0, PrintingPolicy(LangOpts)); + New->printPretty(S, nullptr, PrintingPolicy(LangOpts)); const std::string &Str = S.str(); // If replacement succeeded or warning disabled return with no warning. @@ -598,14 +598,14 @@ namespace { CStyleCastExpr* NoTypeInfoCStyleCastExpr(ASTContext *Ctx, QualType Ty, CastKind Kind, Expr *E) { TypeSourceInfo *TInfo = Ctx->getTrivialTypeSourceInfo(Ty, SourceLocation()); - return CStyleCastExpr::Create(*Ctx, Ty, VK_RValue, Kind, E, 0, TInfo, - SourceLocation(), SourceLocation()); + return CStyleCastExpr::Create(*Ctx, Ty, VK_RValue, Kind, E, nullptr, + TInfo, SourceLocation(), SourceLocation()); } bool ImplementationIsNonLazy(const ObjCImplDecl *OD) const { IdentifierInfo* II = &Context->Idents.get("load"); Selector LoadSel = Context->Selectors.getSelector(0, &II); - return OD->getClassMethod(LoadSel) != 0; + return OD->getClassMethod(LoadSel) != nullptr; } StringLiteral *getStringLiteral(StringRef Str) { @@ -686,30 +686,30 @@ void RewriteModernObjC::InitializeCommon(ASTContext &context) { Context = &context; SM = &Context->getSourceManager(); TUDecl = Context->getTranslationUnitDecl(); - MsgSendFunctionDecl = 0; - MsgSendSuperFunctionDecl = 0; - MsgSendStretFunctionDecl = 0; - MsgSendSuperStretFunctionDecl = 0; - MsgSendFpretFunctionDecl = 0; - GetClassFunctionDecl = 0; - GetMetaClassFunctionDecl = 0; - GetSuperClassFunctionDecl = 0; - SelGetUidFunctionDecl = 0; - CFStringFunctionDecl = 0; - ConstantStringClassReference = 0; - NSStringRecord = 0; - CurMethodDef = 0; - CurFunctionDef = 0; - GlobalVarDecl = 0; - GlobalConstructionExp = 0; - SuperStructDecl = 0; - ProtocolTypeDecl = 0; - ConstantStringDecl = 0; + MsgSendFunctionDecl = nullptr; + MsgSendSuperFunctionDecl = nullptr; + MsgSendStretFunctionDecl = nullptr; + MsgSendSuperStretFunctionDecl = nullptr; + MsgSendFpretFunctionDecl = nullptr; + GetClassFunctionDecl = nullptr; + GetMetaClassFunctionDecl = nullptr; + GetSuperClassFunctionDecl = nullptr; + SelGetUidFunctionDecl = nullptr; + CFStringFunctionDecl = nullptr; + ConstantStringClassReference = nullptr; + NSStringRecord = nullptr; + CurMethodDef = nullptr; + CurFunctionDef = nullptr; + GlobalVarDecl = nullptr; + GlobalConstructionExp = nullptr; + SuperStructDecl = nullptr; + ProtocolTypeDecl = nullptr; + ConstantStringDecl = nullptr; BcLabelCount = 0; - SuperConstructorFunctionDecl = 0; + SuperConstructorFunctionDecl = nullptr; NumObjCStringLiterals = 0; - PropParentMap = 0; - CurrentBody = 0; + PropParentMap = nullptr; + CurrentBody = nullptr; DisableReplaceStmt = false; objc_impl_method = false; @@ -894,11 +894,11 @@ RewriteModernObjC::getIvarAccessString(ObjCIvarDecl *D) { Zero = NoTypeInfoCStyleCastExpr(Context, PtrStructIMPL, CK_BitCast, Zero); ParenExpr *PE = new (Context) ParenExpr(SourceLocation(), SourceLocation(), Zero); - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get(D->getNameAsString()), - IvarT, 0, - /*BitWidth=*/0, /*Mutable=*/true, + IvarT, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(PE, true, FD, SourceLocation(), FD->getType(), VK_LValue, @@ -981,7 +981,7 @@ void RewriteModernObjC::RewritePropertyImplDecl(ObjCPropertyImplDecl *PID, if (GenGetProperty) { // return objc_getProperty(self, _cmd, offsetof(ClassDecl, OID), 1) Getr += "typedef "; - const FunctionType *FPRetType = 0; + const FunctionType *FPRetType = nullptr; RewriteTypeIntoString(PD->getGetterMethodDecl()->getReturnType(), Getr, FPRetType); Getr += " _TYPE"; @@ -1266,7 +1266,7 @@ void RewriteModernObjC::RewriteObjCMethodDecl(const ObjCInterfaceDecl *IDecl, ObjCMethodDecl *OMD, std::string &ResultStr) { //fprintf(stderr,"In RewriteObjCMethodDecl\n"); - const FunctionType *FPRetType = 0; + const FunctionType *FPRetType = nullptr; ResultStr += "\nstatic "; RewriteTypeIntoString(OMD->getReturnType(), ResultStr, FPRetType); ResultStr += " "; @@ -1458,7 +1458,7 @@ Stmt *RewriteModernObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *Pseud DisableReplaceStmtScope S(*this); // Rebuild the base expression if we have one. - Base = 0; + Base = nullptr; if (OldMsg->getReceiverKind() == ObjCMessageExpr::Instance) { Base = OldMsg->getInstanceReceiver(); Base = cast(Base)->getSourceExpr(); @@ -1479,7 +1479,7 @@ Stmt *RewriteModernObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *Pseud SmallVector SelLocs; OldMsg->getSelectorLocs(SelLocs); - ObjCMessageExpr *NewMsg = 0; + ObjCMessageExpr *NewMsg = nullptr; switch (OldMsg->getReceiverKind()) { case ObjCMessageExpr::Class: NewMsg = ObjCMessageExpr::Create(*Context, OldMsg->getType(), @@ -1539,7 +1539,7 @@ Stmt *RewriteModernObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *Pseud // Because the rewriter doesn't allow us to rewrite rewritten code, // we need to suppress rewriting the sub-statements. - Expr *Base = 0; + Expr *Base = nullptr; SmallVector Args; { DisableReplaceStmtScope S(*this); @@ -1562,7 +1562,7 @@ Stmt *RewriteModernObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *Pseud // Intentionally empty. SmallVector SelLocs; - ObjCMessageExpr *NewMsg = 0; + ObjCMessageExpr *NewMsg = nullptr; switch (OldMsg->getReceiverKind()) { case ObjCMessageExpr::Class: NewMsg = ObjCMessageExpr::Create(*Context, OldMsg->getType(), @@ -1646,7 +1646,7 @@ Stmt *RewriteModernObjC::RewriteBreakStmt(BreakStmt *S) { buf += utostr(ObjCBcLabelNo.back()); ReplaceText(startLoc, strlen("break"), buf); - return 0; + return nullptr; } void RewriteModernObjC::ConvertSourceLocationToLineDirective( @@ -1676,7 +1676,7 @@ Stmt *RewriteModernObjC::RewriteContinueStmt(ContinueStmt *S) { buf += utostr(ObjCBcLabelNo.back()); ReplaceText(startLoc, strlen("continue"), buf); - return 0; + return nullptr; } /// RewriteObjCForCollectionStmt - Rewriter for ObjC2's foreach statement. @@ -1875,7 +1875,7 @@ Stmt *RewriteModernObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S, } Stmts.pop_back(); ObjCBcLabelNo.pop_back(); - return 0; + return nullptr; } static void Write_RethrowObject(std::string &buf) { @@ -1937,7 +1937,7 @@ Stmt *RewriteModernObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) ReplaceText(startRBraceLoc, 1, buf); - return 0; + return nullptr; } void RewriteModernObjC::WarnAboutReturnGotoStmts(Stmt *S) @@ -1959,8 +1959,8 @@ Stmt *RewriteModernObjC::RewriteObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt ReplaceText(startLoc, strlen("@autoreleasepool"), "/* @autoreleasepool */"); ReplaceText(S->getSubStmt()->getLocStart(), 1, "{ __AtAutoreleasePool __autoreleasepool; "); - - return 0; + + return nullptr; } Stmt *RewriteModernObjC::RewriteObjCTryStmt(ObjCAtTryStmt *S) { @@ -2061,7 +2061,7 @@ Stmt *RewriteModernObjC::RewriteObjCTryStmt(ObjCAtTryStmt *S) { WarnAboutReturnGotoStmts(S->getTryBody()); } - return 0; + return nullptr; } // This can't be done with ReplaceStmt(S, ThrowExpr), since @@ -2093,7 +2093,7 @@ Stmt *RewriteModernObjC::RewriteObjCThrowStmt(ObjCAtThrowStmt *S) { SourceLocation semiLoc = startLoc.getLocWithOffset(semiBuf-startBuf); if (S->getThrowExpr()) ReplaceText(semiLoc, 1, ");"); - return 0; + return nullptr; } Stmt *RewriteModernObjC::RewriteAtEncode(ObjCEncodeExpr *Exp) { @@ -2136,7 +2136,7 @@ CallExpr *RewriteModernObjC::SynthesizeCallToFunctionDecl( QualType pToFunc = Context->getPointerType(msgSendType); ImplicitCastExpr *ICE = ImplicitCastExpr::Create(*Context, pToFunc, CK_FunctionToPointerDecay, - DRE, 0, VK_RValue); + DRE, nullptr, VK_RValue); const FunctionType *FT = msgSendType->getAs(); @@ -2212,7 +2212,7 @@ void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Expr *E) { const char *startBuf = SM->getCharacterData(Loc); const char *endBuf = SM->getCharacterData(EndLoc); - const char *startRef = 0, *endRef = 0; + const char *startRef = nullptr, *endRef = nullptr; if (scanForProtocolRefs(startBuf, endBuf, startRef, endRef)) { // Get the locations of the startRef, endRef. SourceLocation LessLoc = Loc.getLocWithOffset(startRef-startBuf); @@ -2227,7 +2227,7 @@ void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Expr *E) { void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { SourceLocation Loc; QualType Type; - const FunctionProtoType *proto = 0; + const FunctionProtoType *proto = nullptr; if (VarDecl *VD = dyn_cast(Dcl)) { Loc = VD->getLocation(); Type = VD->getType(); @@ -2261,7 +2261,7 @@ void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { const char *startBuf = endBuf; while (*startBuf != ';' && *startBuf != '<' && startBuf != MainFileStart) startBuf--; // scan backward (from the decl location) for return type. - const char *startRef = 0, *endRef = 0; + const char *startRef = nullptr, *endRef = nullptr; if (scanForProtocolRefs(startBuf, endBuf, startRef, endRef)) { // Get the locations of the startRef, endRef. SourceLocation LessLoc = Loc.getLocWithOffset(startRef-endBuf); @@ -2283,7 +2283,7 @@ void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { const char *endBuf = startBuf; // scan forward (from the decl location) for argument types. scanToNextArgument(endBuf); - const char *startRef = 0, *endRef = 0; + const char *startRef = nullptr, *endRef = nullptr; if (scanForProtocolRefs(startBuf, endBuf, startRef, endRef)) { // Get the locations of the startRef, endRef. SourceLocation LessLoc = @@ -2352,8 +2352,8 @@ void RewriteModernObjC::SynthSelGetUidFunctionDecl() { SelGetUidFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - SelGetUidIdent, getFuncType, 0, - SC_Extern); + SelGetUidIdent, getFuncType, + nullptr, SC_Extern); } void RewriteModernObjC::RewriteFunctionDecl(FunctionDecl *FD) { @@ -2451,7 +2451,7 @@ void RewriteModernObjC::SynthSuperConstructorFunctionDecl() { SourceLocation(), SourceLocation(), msgSendIdent, msgSendType, - 0, SC_Extern); + nullptr, SC_Extern); } // SynthMsgSendFunctionDecl - id objc_msgSend(id self, SEL op, ...); @@ -2469,7 +2469,7 @@ void RewriteModernObjC::SynthMsgSendFunctionDecl() { MsgSendFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, + msgSendIdent, msgSendType, nullptr, SC_Extern); } @@ -2483,8 +2483,8 @@ void RewriteModernObjC::SynthMsgSendSuperFunctionDecl() { MsgSendSuperFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthMsgSendStretFunctionDecl - id objc_msgSend_stret(id self, SEL op, ...); @@ -2502,8 +2502,8 @@ void RewriteModernObjC::SynthMsgSendStretFunctionDecl() { MsgSendStretFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthMsgSendSuperStretFunctionDecl - @@ -2519,7 +2519,7 @@ void RewriteModernObjC::SynthMsgSendSuperStretFunctionDecl() { SourceLocation(), SourceLocation(), msgSendIdent, - msgSendType, 0, + msgSendType, nullptr, SC_Extern); } @@ -2538,8 +2538,8 @@ void RewriteModernObjC::SynthMsgSendFpretFunctionDecl() { MsgSendFpretFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthGetClassFunctionDecl - Class objc_getClass(const char *name); @@ -2552,8 +2552,8 @@ void RewriteModernObjC::SynthGetClassFunctionDecl() { GetClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - getClassIdent, getClassType, 0, - SC_Extern); + getClassIdent, getClassType, + nullptr, SC_Extern); } // SynthGetSuperClassFunctionDecl - Class class_getSuperclass(Class cls); @@ -2568,7 +2568,7 @@ void RewriteModernObjC::SynthGetSuperClassFunctionDecl() { SourceLocation(), SourceLocation(), getSuperClassIdent, - getClassType, 0, + getClassType, nullptr, SC_Extern); } @@ -2583,7 +2583,7 @@ void RewriteModernObjC::SynthGetMetaClassFunctionDecl() { SourceLocation(), SourceLocation(), getClassIdent, getClassType, - 0, SC_Extern); + nullptr, SC_Extern); } Stmt *RewriteModernObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) { @@ -2609,14 +2609,14 @@ Stmt *RewriteModernObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) { // The pretty printer for StringLiteral handles escape characters properly. std::string prettyBufS; llvm::raw_string_ostream prettyBuf(prettyBufS); - Exp->getString()->printPretty(prettyBuf, 0, PrintingPolicy(LangOpts)); + Exp->getString()->printPretty(prettyBuf, nullptr, PrintingPolicy(LangOpts)); Preamble += prettyBuf.str(); Preamble += ","; Preamble += utostr(Exp->getString()->getByteLength()) + "};\n"; VarDecl *NewVD = VarDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), &Context->Idents.get(S), - strType, 0, SC_Static); + strType, nullptr, SC_Static); DeclRefExpr *DRE = new (Context) DeclRefExpr(NewVD, false, strType, VK_LValue, SourceLocation()); Expr *Unop = new (Context) UnaryOperator(DRE, UO_AddrOf, @@ -2770,13 +2770,13 @@ Stmt *RewriteModernObjC::RewriteObjCArrayLiteralExpr(ObjCArrayLiteral *Exp) { Expr *NSArrayCallExpr = new (Context) CallExpr(*Context, NSArrayDRE, InitExprs, NSArrayFType, VK_LValue, SourceLocation()); - - FieldDecl *ARRFD = FieldDecl::Create(*Context, 0, SourceLocation(), + + FieldDecl *ARRFD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("arr"), - Context->getPointerType(Context->VoidPtrTy), 0, - /*BitWidth=*/0, /*Mutable=*/true, - ICIS_NoInit); + Context->getPointerType(Context->VoidPtrTy), + nullptr, /*BitWidth=*/nullptr, + /*Mutable=*/true, ICIS_NoInit); MemberExpr *ArrayLiteralME = new (Context) MemberExpr(NSArrayCallExpr, false, ARRFD, SourceLocation(), @@ -2907,13 +2907,13 @@ Stmt *RewriteModernObjC::RewriteObjCDictionaryLiteralExpr(ObjCDictionaryLiteral Expr *NSValueCallExpr = new (Context) CallExpr(*Context, NSDictDRE, ValueExprs, NSDictFType, VK_LValue, SourceLocation()); - - FieldDecl *ARRFD = FieldDecl::Create(*Context, 0, SourceLocation(), + + FieldDecl *ARRFD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("arr"), - Context->getPointerType(Context->VoidPtrTy), 0, - /*BitWidth=*/0, /*Mutable=*/true, - ICIS_NoInit); + Context->getPointerType(Context->VoidPtrTy), + nullptr, /*BitWidth=*/nullptr, + /*Mutable=*/true, ICIS_NoInit); MemberExpr *DictLiteralValueME = new (Context) MemberExpr(NSValueCallExpr, false, ARRFD, SourceLocation(), @@ -3045,9 +3045,9 @@ QualType RewriteModernObjC::getSuperStructType() { for (unsigned i = 0; i < 2; ++i) { SuperStructDecl->addDecl(FieldDecl::Create(*Context, SuperStructDecl, SourceLocation(), - SourceLocation(), 0, - FieldTypes[i], 0, - /*BitWidth=*/0, + SourceLocation(), nullptr, + FieldTypes[i], nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/false, ICIS_NoInit)); } @@ -3078,9 +3078,9 @@ QualType RewriteModernObjC::getConstantStringStructType() { ConstantStringDecl->addDecl(FieldDecl::Create(*Context, ConstantStringDecl, SourceLocation(), - SourceLocation(), 0, - FieldTypes[i], 0, - /*BitWidth=*/0, + SourceLocation(), nullptr, + FieldTypes[i], nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit)); } @@ -3231,19 +3231,19 @@ Expr *RewriteModernObjC::SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFla // AST for __Stretn(receiver, args).s; IdentifierInfo *ID = &Context->Idents.get(name); FunctionDecl *FD = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), - SourceLocation(), ID, castType, 0, - SC_Extern, false, false); + SourceLocation(), ID, castType, + nullptr, SC_Extern, false, false); DeclRefExpr *DRE = new (Context) DeclRefExpr(FD, false, castType, VK_RValue, SourceLocation()); CallExpr *STCE = new (Context) CallExpr(*Context, DRE, MsgExprs, castType, VK_LValue, SourceLocation()); - - FieldDecl *FieldD = FieldDecl::Create(*Context, 0, SourceLocation(), + + FieldDecl *FieldD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("s"), - returnType, 0, - /*BitWidth=*/0, /*Mutable=*/true, - ICIS_NoInit); + returnType, nullptr, + /*BitWidth=*/nullptr, + /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(STCE, false, FieldD, SourceLocation(), FieldD->getType(), VK_LValue, OK_Ordinary); @@ -3276,7 +3276,7 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp, // default to objc_msgSend(). FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl; // May need to use objc_msgSend_stret() as well. - FunctionDecl *MsgSendStretFlavor = 0; + FunctionDecl *MsgSendStretFlavor = nullptr; if (ObjCMethodDecl *mDecl = Exp->getMethodDecl()) { QualType resultType = mDecl->getReturnType(); if (resultType->isRecordType()) @@ -3659,8 +3659,8 @@ Stmt *RewriteModernObjC::RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp) { Exp->getProtocol()->getNameAsString(); IdentifierInfo *ID = &Context->Idents.get(Name); VarDecl *VD = VarDecl::Create(*Context, TUDecl, SourceLocation(), - SourceLocation(), ID, getProtocolType(), 0, - SC_Extern); + SourceLocation(), ID, getProtocolType(), + nullptr, SC_Extern); DeclRefExpr *DRE = new (Context) DeclRefExpr(VD, false, getProtocolType(), VK_LValue, SourceLocation()); CastExpr *castExpr = @@ -3834,8 +3834,8 @@ void RewriteModernObjC::RewriteLocallyDefinedNamedAggregates(FieldDecl *fieldDec Type = Context->getBaseElementType(Type); ObjCContainerDecl *IDecl = dyn_cast(fieldDecl->getDeclContext()); - - TagDecl *TD = 0; + + TagDecl *TD = nullptr; if (Type->isRecordType()) { TD = Type->getAs()->getDecl(); } @@ -3896,8 +3896,8 @@ QualType RewriteModernObjC::SynthesizeBitfieldGroupStructType( RD->addDecl(FieldDecl::Create(*Context, RD, SourceLocation(), SourceLocation(), &Context->Idents.get(Ivar->getName()), Ivar->getType(), - 0, /*Expr *BW */Ivar->getBitWidth(), false, - ICIS_NoInit)); + nullptr, /*Expr *BW */Ivar->getBitWidth(), + false, ICIS_NoInit)); } RD->completeDefinition(); return Context->getTagDeclType(RD); @@ -4527,12 +4527,12 @@ void RewriteModernObjC::SynthesizeBlockLiterals(SourceLocation FunLocStart, std::string SStr; llvm::raw_string_ostream constructorExprBuf(SStr); - GlobalConstructionExp->printPretty(constructorExprBuf, 0, - PrintingPolicy(LangOpts)); + GlobalConstructionExp->printPretty(constructorExprBuf, nullptr, + PrintingPolicy(LangOpts)); globalBuf += constructorExprBuf.str(); globalBuf += ";\n"; InsertText(FunLocStart, globalBuf); - GlobalConstructionExp = 0; + GlobalConstructionExp = nullptr; } Blocks.clear(); @@ -4675,7 +4675,7 @@ QualType RewriteModernObjC::convertFunctionTypeOfBlocks(const FunctionType *FT) Stmt *RewriteModernObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) { // Navigate to relevant type information. - const BlockPointerType *CPT = 0; + const BlockPointerType *CPT = nullptr; if (const DeclRefExpr *DRE = dyn_cast(BlockExp)) { CPT = DRE->getType()->getAs(); @@ -4746,11 +4746,11 @@ Stmt *RewriteModernObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp BlkCast); //PE->dump(); - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("FuncPtr"), - Context->VoidPtrTy, 0, - /*BitWidth=*/0, /*Mutable=*/true, + Context->VoidPtrTy, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(PE, true, FD, SourceLocation(), FD->getType(), VK_LValue, @@ -4793,12 +4793,12 @@ Stmt *RewriteModernObjC::RewriteBlockDeclRefExpr(DeclRefExpr *DeclRefExp) { // for each DeclRefExp where BYREFVAR is name of the variable. ValueDecl *VD = DeclRefExp->getDecl(); bool isArrow = DeclRefExp->refersToEnclosingLocal(); - - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("__forwarding"), - Context->VoidPtrTy, 0, - /*BitWidth=*/0, /*Mutable=*/true, + Context->VoidPtrTy, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(DeclRefExp, isArrow, FD, SourceLocation(), @@ -4806,10 +4806,10 @@ Stmt *RewriteModernObjC::RewriteBlockDeclRefExpr(DeclRefExpr *DeclRefExp) { OK_Ordinary); StringRef Name = VD->getName(); - FD = FieldDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get(Name), - Context->VoidPtrTy, 0, - /*BitWidth=*/0, /*Mutable=*/true, + Context->VoidPtrTy, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); ME = new (Context) MemberExpr(ME, true, FD, SourceLocation(), DeclRefExp->getType(), VK_LValue, OK_Ordinary); @@ -5214,7 +5214,7 @@ void RewriteModernObjC::RewriteByRefVar(VarDecl *ND, bool firstDecl, // struct __Block_byref_ND ND = // {0, &ND, some_flag, __size=sizeof(struct __Block_byref_ND), // initializer-if-any}; - bool hasInit = (ND->getInit() != 0); + bool hasInit = (ND->getInit() != nullptr); // FIXME. rewriter does not support __block c++ objects which // require construction. if (hasInit) @@ -5328,7 +5328,7 @@ FunctionDecl *RewriteModernObjC::SynthBlockInitFunctionDecl(StringRef name) { IdentifierInfo *ID = &Context->Idents.get(name); QualType FType = Context->getFunctionNoProtoType(Context->VoidPtrTy); return FunctionDecl::Create(*Context, TUDecl, SourceLocation(), - SourceLocation(), ID, FType, 0, SC_Extern, + SourceLocation(), ID, FType, nullptr, SC_Extern, false, false); } @@ -5429,7 +5429,7 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp, VarDecl *NewVD = VarDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), &Context->Idents.get(DescData.c_str()), - Context->VoidPtrTy, 0, + Context->VoidPtrTy, nullptr, SC_Static); UnaryOperator *DescRefExpr = new (Context) UnaryOperator(new (Context) DeclRefExpr(NewVD, false, @@ -5531,7 +5531,7 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp, FType, VK_LValue, SourceLocation()); if (GlobalBlockExpr) { - assert (GlobalConstructionExp == 0 && + assert (!GlobalConstructionExp && "SynthBlockInitExpr - GlobalConstructionExp must be null"); GlobalConstructionExp = NewRep; NewRep = DRE; @@ -5607,7 +5607,7 @@ Stmt *RewriteModernObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) { // Rewrite the block body in place. Stmt *SaveCurrentBody = CurrentBody; CurrentBody = BE->getBody(); - PropParentMap = 0; + PropParentMap = nullptr; // block literal on rhs of a property-dot-sytax assignment // must be replaced by its synthesize ast so getRewrittenText // works as expected. In this case, what actually ends up on RHS @@ -5618,7 +5618,7 @@ Stmt *RewriteModernObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) { RewriteFunctionBodyOrGlobalInitializer(BE->getBody()); DisableReplaceStmt = saveDisableReplaceStmt; CurrentBody = SaveCurrentBody; - PropParentMap = 0; + PropParentMap = nullptr; ImportedLocalExternalDecls.clear(); // Now we snarf the rewritten text and stash it away for later use. std::string Str = Rewrite.getRewrittenText(BE->getSourceRange()); @@ -5838,16 +5838,16 @@ void RewriteModernObjC::HandleDeclInMainFile(Decl *D) { Body = cast_or_null(RewriteFunctionBodyOrGlobalInitializer(Body)); FD->setBody(Body); - CurrentBody = 0; + CurrentBody = nullptr; if (PropParentMap) { delete PropParentMap; - PropParentMap = 0; + PropParentMap = nullptr; } // This synthesizes and inserts the block "impl" struct, invoke function, // and any copy/dispose helper functions. InsertBlockLiteralsWithinFunction(FD); RewriteLineDirective(D); - CurFunctionDef = 0; + CurFunctionDef = nullptr; } break; } @@ -5859,14 +5859,14 @@ void RewriteModernObjC::HandleDeclInMainFile(Decl *D) { Body = cast_or_null(RewriteFunctionBodyOrGlobalInitializer(Body)); MD->setBody(Body); - CurrentBody = 0; + CurrentBody = nullptr; if (PropParentMap) { delete PropParentMap; - PropParentMap = 0; + PropParentMap = nullptr; } InsertBlockLiteralsWithinMethod(MD); RewriteLineDirective(D); - CurMethodDef = 0; + CurMethodDef = nullptr; } break; } @@ -5901,14 +5901,14 @@ void RewriteModernObjC::HandleDeclInMainFile(Decl *D) { GlobalVarDecl = VD; CurrentBody = VD->getInit(); RewriteFunctionBodyOrGlobalInitializer(VD->getInit()); - CurrentBody = 0; + CurrentBody = nullptr; if (PropParentMap) { delete PropParentMap; - PropParentMap = 0; + PropParentMap = nullptr; } SynthesizeBlockLiterals(VD->getTypeSpecStartLoc(), VD->getName()); - GlobalVarDecl = 0; - + GlobalVarDecl = nullptr; + // This is needed for blocks. if (CStyleCastExpr *CE = dyn_cast(VD->getInit())) { RewriteCastExpr(CE); @@ -7045,10 +7045,10 @@ void RewriteModernObjC::RewriteObjCProtocolMetaData(ObjCProtocolDecl *PDecl, // Protocol's property metadata. SmallVector ProtocolProperties(PDecl->properties()); Write_prop_list_t_initializer(*this, Context, Result, ProtocolProperties, - /* Container */0, + /* Container */nullptr, "_OBJC_PROTOCOL_PROPERTIES_", PDecl->getNameAsString()); - + // Writer out root metadata for current protocol: struct _protocol_t Result += "\n"; if (LangOpts.MicrosoftExt) @@ -7281,13 +7281,12 @@ void RewriteModernObjC::RewriteObjCClassMetaData(ObjCImplementationDecl *IDecl, Write__class_ro_t_initializer(Context, Result, flags, InstanceStart, InstanceSize, ClassMethods, - 0, - 0, - 0, + nullptr, + nullptr, + nullptr, "_OBJC_METACLASS_RO_$_", CDecl->getNameAsString()); - // Data for initializing _class_ro_t meta-data flags = CLS; if (classIsHidden) @@ -7643,7 +7642,7 @@ Stmt *RewriteModernObjC::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) { dyn_cast(BaseExpr->getType()->getPointeeType()); assert(iFaceDecl && "RewriteObjCIvarRefExpr - iFaceDecl is null"); // lookup which class implements the instance variable. - ObjCInterfaceDecl *clsDeclared = 0; + ObjCInterfaceDecl *clsDeclared = nullptr; iFaceDecl->getDecl()->lookupInstanceVariable(D->getIdentifier(), clsDeclared); assert(clsDeclared && "RewriteObjCIvarRefExpr(): Can't find class"); @@ -7664,7 +7663,8 @@ Stmt *RewriteModernObjC::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) { BaseExpr); VarDecl *NewVD = VarDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), &Context->Idents.get(IvarOffsetName), - Context->UnsignedLongTy, 0, SC_Extern); + Context->UnsignedLongTy, nullptr, + SC_Extern); DeclRefExpr *DRE = new (Context) DeclRefExpr(NewVD, false, Context->UnsignedLongTy, VK_LValue, SourceLocation()); @@ -7704,12 +7704,12 @@ Stmt *RewriteModernObjC::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) { Zero = NoTypeInfoCStyleCastExpr(Context, PtrStructIMPL, CK_BitCast, Zero); ParenExpr *PE = new (Context) ParenExpr(SourceLocation(), SourceLocation(), Zero); - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get(D->getNameAsString()), - IvarT, 0, - /*BitWidth=*/0, /*Mutable=*/true, - ICIS_NoInit); + IvarT, nullptr, + /*BitWidth=*/nullptr, + /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(PE, true, FD, SourceLocation(), FD->getType(), VK_LValue, OK_Ordinary); @@ -7733,13 +7733,12 @@ Stmt *RewriteModernObjC::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) { Exp); if (D->isBitField()) { - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get(D->getNameAsString()), - D->getType(), 0, + D->getType(), nullptr, /*BitWidth=*/D->getBitWidth(), - /*Mutable=*/true, - ICIS_NoInit); + /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(PE, /*isArrow*/false, FD, SourceLocation(), FD->getType(), VK_LValue, OK_Ordinary); diff --git a/lib/Rewrite/Frontend/RewriteObjC.cpp b/lib/Rewrite/Frontend/RewriteObjC.cpp index 80d6cc6c33..beadb931a9 100644 --- a/lib/Rewrite/Frontend/RewriteObjC.cpp +++ b/lib/Rewrite/Frontend/RewriteObjC.cpp @@ -229,7 +229,7 @@ namespace { // Get the new text. std::string SStr; llvm::raw_string_ostream S(SStr); - New->printPretty(S, 0, PrintingPolicy(LangOpts)); + New->printPretty(S, nullptr, PrintingPolicy(LangOpts)); const std::string &Str = S.str(); // If replacement succeeded or warning disabled return with no warning. @@ -498,8 +498,8 @@ namespace { CStyleCastExpr* NoTypeInfoCStyleCastExpr(ASTContext *Ctx, QualType Ty, CastKind Kind, Expr *E) { TypeSourceInfo *TInfo = Ctx->getTrivialTypeSourceInfo(Ty, SourceLocation()); - return CStyleCastExpr::Create(*Ctx, Ty, VK_RValue, Kind, E, 0, TInfo, - SourceLocation(), SourceLocation()); + return CStyleCastExpr::Create(*Ctx, Ty, VK_RValue, Kind, E, nullptr, + TInfo, SourceLocation(), SourceLocation()); } StringLiteral *getStringLiteral(StringRef Str) { @@ -609,30 +609,30 @@ void RewriteObjC::InitializeCommon(ASTContext &context) { Context = &context; SM = &Context->getSourceManager(); TUDecl = Context->getTranslationUnitDecl(); - MsgSendFunctionDecl = 0; - MsgSendSuperFunctionDecl = 0; - MsgSendStretFunctionDecl = 0; - MsgSendSuperStretFunctionDecl = 0; - MsgSendFpretFunctionDecl = 0; - GetClassFunctionDecl = 0; - GetMetaClassFunctionDecl = 0; - GetSuperClassFunctionDecl = 0; - SelGetUidFunctionDecl = 0; - CFStringFunctionDecl = 0; - ConstantStringClassReference = 0; - NSStringRecord = 0; - CurMethodDef = 0; - CurFunctionDef = 0; - CurFunctionDeclToDeclareForBlock = 0; - GlobalVarDecl = 0; - SuperStructDecl = 0; - ProtocolTypeDecl = 0; - ConstantStringDecl = 0; + MsgSendFunctionDecl = nullptr; + MsgSendSuperFunctionDecl = nullptr; + MsgSendStretFunctionDecl = nullptr; + MsgSendSuperStretFunctionDecl = nullptr; + MsgSendFpretFunctionDecl = nullptr; + GetClassFunctionDecl = nullptr; + GetMetaClassFunctionDecl = nullptr; + GetSuperClassFunctionDecl = nullptr; + SelGetUidFunctionDecl = nullptr; + CFStringFunctionDecl = nullptr; + ConstantStringClassReference = nullptr; + NSStringRecord = nullptr; + CurMethodDef = nullptr; + CurFunctionDef = nullptr; + CurFunctionDeclToDeclareForBlock = nullptr; + GlobalVarDecl = nullptr; + SuperStructDecl = nullptr; + ProtocolTypeDecl = nullptr; + ConstantStringDecl = nullptr; BcLabelCount = 0; - SuperConstructorFunctionDecl = 0; + SuperConstructorFunctionDecl = nullptr; NumObjCStringLiterals = 0; - PropParentMap = 0; - CurrentBody = 0; + PropParentMap = nullptr; + CurrentBody = nullptr; DisableReplaceStmt = false; objc_impl_method = false; @@ -814,7 +814,7 @@ void RewriteObjC::RewritePropertyImplDecl(ObjCPropertyImplDecl *PID, if (GenGetProperty) { // return objc_getProperty(self, _cmd, offsetof(ClassDecl, OID), 1) Getr += "typedef "; - const FunctionType *FPRetType = 0; + const FunctionType *FPRetType = nullptr; RewriteTypeIntoString(PD->getGetterMethodDecl()->getReturnType(), Getr, FPRetType); Getr += " _TYPE"; @@ -1068,7 +1068,7 @@ void RewriteObjC::RewriteObjCMethodDecl(const ObjCInterfaceDecl *IDecl, ObjCMethodDecl *OMD, std::string &ResultStr) { //fprintf(stderr,"In RewriteObjCMethodDecl\n"); - const FunctionType *FPRetType = 0; + const FunctionType *FPRetType = nullptr; ResultStr += "\nstatic "; RewriteTypeIntoString(OMD->getReturnType(), ResultStr, FPRetType); ResultStr += " "; @@ -1246,7 +1246,7 @@ Stmt *RewriteObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *PseudoOp) { DisableReplaceStmtScope S(*this); // Rebuild the base expression if we have one. - Base = 0; + Base = nullptr; if (OldMsg->getReceiverKind() == ObjCMessageExpr::Instance) { Base = OldMsg->getInstanceReceiver(); Base = cast(Base)->getSourceExpr(); @@ -1263,7 +1263,7 @@ Stmt *RewriteObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *PseudoOp) { SmallVector SelLocs; OldMsg->getSelectorLocs(SelLocs); - ObjCMessageExpr *NewMsg = 0; + ObjCMessageExpr *NewMsg = nullptr; switch (OldMsg->getReceiverKind()) { case ObjCMessageExpr::Class: NewMsg = ObjCMessageExpr::Create(*Context, OldMsg->getType(), @@ -1323,7 +1323,7 @@ Stmt *RewriteObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *PseudoOp) { // Because the rewriter doesn't allow us to rewrite rewritten code, // we need to suppress rewriting the sub-statements. - Expr *Base = 0; + Expr *Base = nullptr; { DisableReplaceStmtScope S(*this); @@ -1339,7 +1339,7 @@ Stmt *RewriteObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *PseudoOp) { SmallVector SelLocs; SmallVector Args; - ObjCMessageExpr *NewMsg = 0; + ObjCMessageExpr *NewMsg = nullptr; switch (OldMsg->getReceiverKind()) { case ObjCMessageExpr::Class: NewMsg = ObjCMessageExpr::Create(*Context, OldMsg->getType(), @@ -1423,7 +1423,7 @@ Stmt *RewriteObjC::RewriteBreakStmt(BreakStmt *S) { buf += utostr(ObjCBcLabelNo.back()); ReplaceText(startLoc, strlen("break"), buf); - return 0; + return nullptr; } /// RewriteContinueStmt - Rewrite for a continue-stmt inside an ObjC2's foreach @@ -1440,7 +1440,7 @@ Stmt *RewriteObjC::RewriteContinueStmt(ContinueStmt *S) { buf += utostr(ObjCBcLabelNo.back()); ReplaceText(startLoc, strlen("continue"), buf); - return 0; + return nullptr; } /// RewriteObjCForCollectionStmt - Rewriter for ObjC2's foreach statement. @@ -1636,7 +1636,7 @@ Stmt *RewriteObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S, } Stmts.pop_back(); ObjCBcLabelNo.pop_back(); - return 0; + return nullptr; } /// RewriteObjCSynchronizedStmt - @@ -1697,7 +1697,7 @@ Stmt *RewriteObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) { CK, syncExpr); std::string syncExprBufS; llvm::raw_string_ostream syncExprBuf(syncExprBufS); - syncExpr->printPretty(syncExprBuf, 0, PrintingPolicy(LangOpts)); + syncExpr->printPretty(syncExprBuf, nullptr, PrintingPolicy(LangOpts)); syncBuf += syncExprBuf.str(); syncBuf += ");"; @@ -1713,7 +1713,7 @@ Stmt *RewriteObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) { if (hasReturns) RewriteSyncReturnStmts(S->getSynchBody(), syncBuf); - return 0; + return nullptr; } void RewriteObjC::WarnAboutReturnGotoStmts(Stmt *S) @@ -1830,7 +1830,7 @@ Stmt *RewriteObjC::RewriteObjCTryStmt(ObjCAtTryStmt *S) { buf += "}"; ReplaceText(lastCurlyLoc, 1, buf); } - Stmt *lastCatchBody = 0; + Stmt *lastCatchBody = nullptr; for (unsigned I = 0, N = S->getNumCatchStmts(); I != N; ++I) { ObjCAtCatchStmt *Catch = S->getCatchStmt(I); VarDecl *catchDecl = Catch->getCatchParamDecl(); @@ -1952,7 +1952,7 @@ Stmt *RewriteObjC::RewriteObjCTryStmt(ObjCAtTryStmt *S) { // Now emit the final closing curly brace... lastCurlyLoc = lastCurlyLoc.getLocWithOffset(1); InsertText(lastCurlyLoc, " } /* @try scope end */\n"); - return 0; + return nullptr; } // This can't be done with ReplaceStmt(S, ThrowExpr), since @@ -1981,7 +1981,7 @@ Stmt *RewriteObjC::RewriteObjCThrowStmt(ObjCAtThrowStmt *S) { assert((*semiBuf == ';') && "@throw: can't find ';'"); SourceLocation semiLoc = startLoc.getLocWithOffset(semiBuf-startBuf); ReplaceText(semiLoc, 1, ");"); - return 0; + return nullptr; } Stmt *RewriteObjC::RewriteAtEncode(ObjCEncodeExpr *Exp) { @@ -2022,9 +2022,9 @@ CallExpr *RewriteObjC::SynthesizeCallToFunctionDecl( // Now, we cast the reference to a pointer to the objc_msgSend type. QualType pToFunc = Context->getPointerType(msgSendType); - ImplicitCastExpr *ICE = + ImplicitCastExpr *ICE = ImplicitCastExpr::Create(*Context, pToFunc, CK_FunctionToPointerDecay, - DRE, 0, VK_RValue); + DRE, nullptr, VK_RValue); const FunctionType *FT = msgSendType->getAs(); @@ -2100,7 +2100,7 @@ void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Expr *E) { const char *startBuf = SM->getCharacterData(Loc); const char *endBuf = SM->getCharacterData(EndLoc); - const char *startRef = 0, *endRef = 0; + const char *startRef = nullptr, *endRef = nullptr; if (scanForProtocolRefs(startBuf, endBuf, startRef, endRef)) { // Get the locations of the startRef, endRef. SourceLocation LessLoc = Loc.getLocWithOffset(startRef-startBuf); @@ -2115,7 +2115,7 @@ void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Expr *E) { void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { SourceLocation Loc; QualType Type; - const FunctionProtoType *proto = 0; + const FunctionProtoType *proto = nullptr; if (VarDecl *VD = dyn_cast(Dcl)) { Loc = VD->getLocation(); Type = VD->getType(); @@ -2145,7 +2145,7 @@ void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { const char *startBuf = endBuf; while (*startBuf != ';' && *startBuf != '<' && startBuf != MainFileStart) startBuf--; // scan backward (from the decl location) for return type. - const char *startRef = 0, *endRef = 0; + const char *startRef = nullptr, *endRef = nullptr; if (scanForProtocolRefs(startBuf, endBuf, startRef, endRef)) { // Get the locations of the startRef, endRef. SourceLocation LessLoc = Loc.getLocWithOffset(startRef-endBuf); @@ -2167,7 +2167,7 @@ void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) { const char *endBuf = startBuf; // scan forward (from the decl location) for argument types. scanToNextArgument(endBuf); - const char *startRef = 0, *endRef = 0; + const char *startRef = nullptr, *endRef = nullptr; if (scanForProtocolRefs(startBuf, endBuf, startRef, endRef)) { // Get the locations of the startRef, endRef. SourceLocation LessLoc = @@ -2236,8 +2236,8 @@ void RewriteObjC::SynthSelGetUidFunctionDecl() { SelGetUidFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - SelGetUidIdent, getFuncType, 0, - SC_Extern); + SelGetUidIdent, getFuncType, + nullptr, SC_Extern); } void RewriteObjC::RewriteFunctionDecl(FunctionDecl *FD) { @@ -2314,7 +2314,7 @@ void RewriteObjC::RewriteBlockLiteralFunctionDecl(FunctionDecl *FD) { } FdStr += ");\n"; InsertText(FunLocStart, FdStr); - CurFunctionDeclToDeclareForBlock = 0; + CurFunctionDeclToDeclareForBlock = nullptr; } // SynthSuperConstructorFunctionDecl - id objc_super(id obj, id super); @@ -2333,7 +2333,7 @@ void RewriteObjC::SynthSuperConstructorFunctionDecl() { SourceLocation(), SourceLocation(), msgSendIdent, msgSendType, - 0, SC_Extern); + nullptr, SC_Extern); } // SynthMsgSendFunctionDecl - id objc_msgSend(id self, SEL op, ...); @@ -2351,8 +2351,8 @@ void RewriteObjC::SynthMsgSendFunctionDecl() { MsgSendFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthMsgSendSuperFunctionDecl - id objc_msgSendSuper(struct objc_super *, SEL op, ...); @@ -2373,8 +2373,8 @@ void RewriteObjC::SynthMsgSendSuperFunctionDecl() { MsgSendSuperFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthMsgSendStretFunctionDecl - id objc_msgSend_stret(id self, SEL op, ...); @@ -2392,8 +2392,8 @@ void RewriteObjC::SynthMsgSendStretFunctionDecl() { MsgSendStretFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthMsgSendSuperStretFunctionDecl - @@ -2417,7 +2417,7 @@ void RewriteObjC::SynthMsgSendSuperStretFunctionDecl() { SourceLocation(), SourceLocation(), msgSendIdent, - msgSendType, 0, + msgSendType, nullptr, SC_Extern); } @@ -2436,8 +2436,8 @@ void RewriteObjC::SynthMsgSendFpretFunctionDecl() { MsgSendFpretFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - msgSendIdent, msgSendType, 0, - SC_Extern); + msgSendIdent, msgSendType, + nullptr, SC_Extern); } // SynthGetClassFunctionDecl - id objc_getClass(const char *name); @@ -2450,8 +2450,8 @@ void RewriteObjC::SynthGetClassFunctionDecl() { GetClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), - getClassIdent, getClassType, 0, - SC_Extern); + getClassIdent, getClassType, + nullptr, SC_Extern); } // SynthGetSuperClassFunctionDecl - Class class_getSuperclass(Class cls); @@ -2466,7 +2466,7 @@ void RewriteObjC::SynthGetSuperClassFunctionDecl() { SourceLocation(), SourceLocation(), getSuperClassIdent, - getClassType, 0, + getClassType, nullptr, SC_Extern); } @@ -2481,7 +2481,7 @@ void RewriteObjC::SynthGetMetaClassFunctionDecl() { SourceLocation(), SourceLocation(), getClassIdent, getClassType, - 0, SC_Extern); + nullptr, SC_Extern); } Stmt *RewriteObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) { @@ -2507,14 +2507,14 @@ Stmt *RewriteObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) { // The pretty printer for StringLiteral handles escape characters properly. std::string prettyBufS; llvm::raw_string_ostream prettyBuf(prettyBufS); - Exp->getString()->printPretty(prettyBuf, 0, PrintingPolicy(LangOpts)); + Exp->getString()->printPretty(prettyBuf, nullptr, PrintingPolicy(LangOpts)); Preamble += prettyBuf.str(); Preamble += ","; Preamble += utostr(Exp->getString()->getByteLength()) + "};\n"; VarDecl *NewVD = VarDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), &Context->Idents.get(S), - strType, 0, SC_Static); + strType, nullptr, SC_Static); DeclRefExpr *DRE = new (Context) DeclRefExpr(NewVD, false, strType, VK_LValue, SourceLocation()); Expr *Unop = new (Context) UnaryOperator(DRE, UO_AddrOf, @@ -2546,9 +2546,9 @@ QualType RewriteObjC::getSuperStructType() { for (unsigned i = 0; i < 2; ++i) { SuperStructDecl->addDecl(FieldDecl::Create(*Context, SuperStructDecl, SourceLocation(), - SourceLocation(), 0, - FieldTypes[i], 0, - /*BitWidth=*/0, + SourceLocation(), nullptr, + FieldTypes[i], nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/false, ICIS_NoInit)); } @@ -2579,9 +2579,9 @@ QualType RewriteObjC::getConstantStringStructType() { ConstantStringDecl->addDecl(FieldDecl::Create(*Context, ConstantStringDecl, SourceLocation(), - SourceLocation(), 0, - FieldTypes[i], 0, - /*BitWidth=*/0, + SourceLocation(), nullptr, + FieldTypes[i], nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit)); } @@ -2649,7 +2649,7 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp, // default to objc_msgSend(). FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl; // May need to use objc_msgSend_stret() as well. - FunctionDecl *MsgSendStretFlavor = 0; + FunctionDecl *MsgSendStretFlavor = nullptr; if (ObjCMethodDecl *mDecl = Exp->getMethodDecl()) { QualType resultType = mDecl->getReturnType(); if (resultType->isRecordType()) @@ -3062,8 +3062,8 @@ Stmt *RewriteObjC::RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp) { std::string Name = "_OBJC_PROTOCOL_" + Exp->getProtocol()->getNameAsString(); IdentifierInfo *ID = &Context->Idents.get(Name); VarDecl *VD = VarDecl::Create(*Context, TUDecl, SourceLocation(), - SourceLocation(), ID, getProtocolType(), 0, - SC_Extern); + SourceLocation(), ID, getProtocolType(), + nullptr, SC_Extern); DeclRefExpr *DRE = new (Context) DeclRefExpr(VD, false, getProtocolType(), VK_LValue, SourceLocation()); Expr *DerefExpr = new (Context) UnaryOperator(DRE, UO_AddrOf, @@ -3758,7 +3758,7 @@ QualType RewriteObjC::convertFunctionTypeOfBlocks(const FunctionType *FT) { Stmt *RewriteObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) { // Navigate to relevant type information. - const BlockPointerType *CPT = 0; + const BlockPointerType *CPT = nullptr; if (const DeclRefExpr *DRE = dyn_cast(BlockExp)) { CPT = DRE->getType()->getAs(); @@ -3829,11 +3829,11 @@ Stmt *RewriteObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) { BlkCast); //PE->dump(); - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("FuncPtr"), - Context->VoidPtrTy, 0, - /*BitWidth=*/0, /*Mutable=*/true, + Context->VoidPtrTy, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(PE, true, FD, SourceLocation(), FD->getType(), VK_LValue, @@ -3876,12 +3876,12 @@ Stmt *RewriteObjC::RewriteBlockDeclRefExpr(DeclRefExpr *DeclRefExp) { // for each DeclRefExp where BYREFVAR is name of the variable. ValueDecl *VD = DeclRefExp->getDecl(); bool isArrow = DeclRefExp->refersToEnclosingLocal(); - - FieldDecl *FD = FieldDecl::Create(*Context, 0, SourceLocation(), + + FieldDecl *FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get("__forwarding"), - Context->VoidPtrTy, 0, - /*BitWidth=*/0, /*Mutable=*/true, + Context->VoidPtrTy, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); MemberExpr *ME = new (Context) MemberExpr(DeclRefExp, isArrow, FD, SourceLocation(), @@ -3889,10 +3889,10 @@ Stmt *RewriteObjC::RewriteBlockDeclRefExpr(DeclRefExpr *DeclRefExp) { OK_Ordinary); StringRef Name = VD->getName(); - FD = FieldDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + FD = FieldDecl::Create(*Context, nullptr, SourceLocation(), SourceLocation(), &Context->Idents.get(Name), - Context->VoidPtrTy, 0, - /*BitWidth=*/0, /*Mutable=*/true, + Context->VoidPtrTy, nullptr, + /*BitWidth=*/nullptr, /*Mutable=*/true, ICIS_NoInit); ME = new (Context) MemberExpr(ME, true, FD, SourceLocation(), DeclRefExp->getType(), VK_LValue, OK_Ordinary); @@ -4283,7 +4283,7 @@ void RewriteObjC::RewriteByRefVar(VarDecl *ND) { // struct __Block_byref_ND ND = // {0, &ND, some_flag, __size=sizeof(struct __Block_byref_ND), // initializer-if-any}; - bool hasInit = (ND->getInit() != 0); + bool hasInit = (ND->getInit() != nullptr); unsigned flags = 0; if (HasCopyAndDispose) flags |= BLOCK_HAS_COPY_DISPOSE; @@ -4394,7 +4394,7 @@ FunctionDecl *RewriteObjC::SynthBlockInitFunctionDecl(StringRef name) { IdentifierInfo *ID = &Context->Idents.get(name); QualType FType = Context->getFunctionNoProtoType(Context->VoidPtrTy); return FunctionDecl::Create(*Context, TUDecl, SourceLocation(), - SourceLocation(), ID, FType, 0, SC_Extern, + SourceLocation(), ID, FType, nullptr, SC_Extern, false, false); } @@ -4478,7 +4478,7 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp, VarDecl *NewVD = VarDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(), &Context->Idents.get(DescData.c_str()), - Context->VoidPtrTy, 0, + Context->VoidPtrTy, nullptr, SC_Static); UnaryOperator *DescRefExpr = new (Context) UnaryOperator(new (Context) DeclRefExpr(NewVD, false, @@ -4646,7 +4646,7 @@ Stmt *RewriteObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) { // Rewrite the block body in place. Stmt *SaveCurrentBody = CurrentBody; CurrentBody = BE->getBody(); - PropParentMap = 0; + PropParentMap = nullptr; // block literal on rhs of a property-dot-sytax assignment // must be replaced by its synthesize ast so getRewrittenText // works as expected. In this case, what actually ends up on RHS @@ -4657,7 +4657,7 @@ Stmt *RewriteObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) { RewriteFunctionBodyOrGlobalInitializer(BE->getBody()); DisableReplaceStmt = saveDisableReplaceStmt; CurrentBody = SaveCurrentBody; - PropParentMap = 0; + PropParentMap = nullptr; ImportedLocalExternalDecls.clear(); // Now we snarf the rewritten text and stash it away for later use. std::string Str = Rewrite.getRewrittenText(BE->getSourceRange()); @@ -4854,16 +4854,16 @@ void RewriteObjC::HandleDeclInMainFile(Decl *D) { Body = cast_or_null(RewriteFunctionBodyOrGlobalInitializer(Body)); FD->setBody(Body); - CurrentBody = 0; + CurrentBody = nullptr; if (PropParentMap) { delete PropParentMap; - PropParentMap = 0; + PropParentMap = nullptr; } // This synthesizes and inserts the block "impl" struct, invoke function, // and any copy/dispose helper functions. InsertBlockLiteralsWithinFunction(FD); - CurFunctionDef = 0; - CurFunctionDeclToDeclareForBlock = 0; + CurFunctionDef = nullptr; + CurFunctionDeclToDeclareForBlock = nullptr; } break; } @@ -4875,13 +4875,13 @@ void RewriteObjC::HandleDeclInMainFile(Decl *D) { Body = cast_or_null(RewriteFunctionBodyOrGlobalInitializer(Body)); MD->setBody(Body); - CurrentBody = 0; + CurrentBody = nullptr; if (PropParentMap) { delete PropParentMap; - PropParentMap = 0; + PropParentMap = nullptr; } InsertBlockLiteralsWithinMethod(MD); - CurMethodDef = 0; + CurMethodDef = nullptr; } break; } @@ -4916,14 +4916,14 @@ void RewriteObjC::HandleDeclInMainFile(Decl *D) { GlobalVarDecl = VD; CurrentBody = VD->getInit(); RewriteFunctionBodyOrGlobalInitializer(VD->getInit()); - CurrentBody = 0; + CurrentBody = nullptr; if (PropParentMap) { delete PropParentMap; - PropParentMap = 0; + PropParentMap = nullptr; } SynthesizeBlockLiterals(VD->getTypeSpecStartLoc(), VD->getName()); - GlobalVarDecl = 0; - + GlobalVarDecl = nullptr; + // This is needed for blocks. if (CStyleCastExpr *CE = dyn_cast(VD->getInit())) { RewriteCastExpr(CE); @@ -5473,7 +5473,7 @@ void RewriteObjCFragileABI::RewriteObjCClassMetaData(ObjCImplementationDecl *IDe } // Meta-class metadata generation. - ObjCInterfaceDecl *RootClass = 0; + ObjCInterfaceDecl *RootClass = nullptr; ObjCInterfaceDecl *SuperClass = CDecl->getSuperClass(); while (SuperClass) { RootClass = SuperClass; @@ -5872,7 +5872,7 @@ Stmt *RewriteObjCFragileABI::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) { dyn_cast(BaseExpr->getType()->getPointeeType()); assert(iFaceDecl && "RewriteObjCIvarRefExpr - iFaceDecl is null"); // lookup which class implements the instance variable. - ObjCInterfaceDecl *clsDeclared = 0; + ObjCInterfaceDecl *clsDeclared = nullptr; iFaceDecl->getDecl()->lookupInstanceVariable(D->getIdentifier(), clsDeclared); assert(clsDeclared && "RewriteObjCIvarRefExpr(): Can't find class"); @@ -5913,7 +5913,7 @@ Stmt *RewriteObjCFragileABI::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) { const ObjCInterfaceType *iFaceDecl = dyn_cast(BaseExpr->getType()->getPointeeType()); // lookup which class implements the instance variable. - ObjCInterfaceDecl *clsDeclared = 0; + ObjCInterfaceDecl *clsDeclared = nullptr; iFaceDecl->getDecl()->lookupInstanceVariable(D->getIdentifier(), clsDeclared); assert(clsDeclared && "RewriteObjCIvarRefExpr(): Can't find class"); -- cgit v1.2.3