From a797c529a63d2e1e6c51a2228b24c808182502bf Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 7 May 2014 06:21:57 +0000 Subject: [PATCH] [C++11] Use 'nullptr'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208163 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ARCMigrate/ObjCMT.cpp | 18 +- lib/ARCMigrate/TransAutoreleasePool.cpp | 8 +- .../TransEmptyStatementsAndDealloc.cpp | 4 +- lib/ARCMigrate/TransGCAttrs.cpp | 6 +- lib/ARCMigrate/TransProperties.cpp | 5 +- lib/ARCMigrate/TransProtectedScope.cpp | 2 +- lib/ARCMigrate/TransRetainReleaseDealloc.cpp | 12 +- lib/ARCMigrate/TransUnbridgedCasts.cpp | 3 +- lib/ARCMigrate/TransUnusedInitDelegate.cpp | 2 +- lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp | 4 +- lib/ARCMigrate/Transforms.h | 2 +- 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 ++++++------- utils/TableGen/ClangASTNodesEmitter.cpp | 2 +- utils/TableGen/ClangAttrEmitter.cpp | 8 +- utils/TableGen/ClangDiagnosticsEmitter.cpp | 7 +- utils/TableGen/ClangSACheckersEmitter.cpp | 2 +- utils/TableGen/NeonEmitter.cpp | 2 +- 23 files changed, 321 insertions(+), 317 deletions(-) diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp index 11837f79d6..81cb9da262 100644 --- a/lib/ARCMigrate/ObjCMT.cpp +++ b/lib/ARCMigrate/ObjCMT.cpp @@ -109,7 +109,7 @@ public: ArrayRef WhiteList) : MigrateDir(migrateDir), ASTMigrateActions(astMigrateActions), - NSIntegerTypedefed(0), NSUIntegerTypedefed(0), + NSIntegerTypedefed(nullptr), NSUIntegerTypedefed(nullptr), Remapper(remapper), FileMgr(fileMgr), PPRec(PPRec), PP(PP), IsOutputFile(isOutputFile) { @@ -180,7 +180,7 @@ ObjCMigrateAction::ObjCMigrateAction(FrontendAction *WrappedAction, unsigned migrateAction) : WrapperFrontendAction(WrappedAction), MigrateDir(migrateDir), ObjCMigAction(migrateAction), - CompInst(0) { + CompInst(nullptr) { if (MigrateDir.empty()) MigrateDir = "."; // user current directory if none is given. } @@ -344,7 +344,7 @@ static const char *PropertyMemoryAttribute(ASTContext &Context, QualType ArgType return "weak"; else if (RetainableObject) return ArgType->isBlockPointerType() ? "copy" : "strong"; - return 0; + return nullptr; } static void rewriteToObjCProperty(const ObjCMethodDecl *Getter, @@ -773,11 +773,11 @@ bool ObjCMigrateASTConsumer::migrateNSEnumDecl(ASTContext &Ctx, if (!TypedefDcl) { if (NSIntegerTypedefed) { TypedefDcl = NSIntegerTypedefed; - NSIntegerTypedefed = 0; + NSIntegerTypedefed = nullptr; } else if (NSUIntegerTypedefed) { TypedefDcl = NSUIntegerTypedefed; - NSUIntegerTypedefed = 0; + NSUIntegerTypedefed = nullptr; } else return false; @@ -1108,7 +1108,7 @@ bool ObjCMigrateASTConsumer::migrateProperty(ASTContext &Ctx, // Try a non-void method with no argument (and no setter or property of same name // as a 'readonly' property. edit::Commit commit(*Editor); - rewriteToObjCProperty(Method, 0 /*SetterMethod*/, *NSAPIObj, commit, + rewriteToObjCProperty(Method, nullptr /*SetterMethod*/, *NSAPIObj, commit, LengthOfPrefix, (ASTMigrateActions & FrontendOptions::ObjCMT_AtomicProperty) != 0, @@ -1334,7 +1334,7 @@ void ObjCMigrateASTConsumer::AddCFAnnotations(ASTContext &Ctx, // Annotate function. if (!ResultAnnotated) { RetEffect Ret = CE.getReturnValue(); - const char *AnnotationString = 0; + const char *AnnotationString = nullptr; if (Ret.getObjKind() == RetEffect::CF) { if (Ret.isOwned() && Ctx.Idents.get("CF_RETURNS_RETAINED").hasMacroDefinition()) @@ -1451,7 +1451,7 @@ void ObjCMigrateASTConsumer::AddCFAnnotations(ASTContext &Ctx, // Annotate function. if (!ResultAnnotated) { RetEffect Ret = CE.getReturnValue(); - const char *AnnotationString = 0; + const char *AnnotationString = nullptr; if (Ret.getObjKind() == RetEffect::CF) { if (Ret.isOwned() && Ctx.Idents.get("CF_RETURNS_RETAINED").hasMacroDefinition()) @@ -1738,7 +1738,7 @@ void ObjCMigrateASTConsumer::HandleTranslationUnit(ASTContext &Ctx) { D++; } else - migrateNSEnumDecl(Ctx, ED, /*TypedefDecl */0); + migrateNSEnumDecl(Ctx, ED, /*TypedefDecl */nullptr); } else if (const TypedefDecl *TD = dyn_cast(*D)) { if (!(ASTMigrateActions & FrontendOptions::ObjCMT_NsMacros)) diff --git a/lib/ARCMigrate/TransAutoreleasePool.cpp b/lib/ARCMigrate/TransAutoreleasePool.cpp index a2990e7226..a8a99fa712 100644 --- a/lib/ARCMigrate/TransAutoreleasePool.cpp +++ b/lib/ARCMigrate/TransAutoreleasePool.cpp @@ -70,7 +70,7 @@ class AutoreleasePoolRewriter : public RecursiveASTVisitor { public: AutoreleasePoolRewriter(MigrationPass &pass) - : Body(0), Pass(pass) { + : Body(nullptr), Pass(pass) { PoolII = &pass.Ctx.Idents.get("NSAutoreleasePool"); DrainSel = pass.Ctx.Selectors.getNullarySelector( &pass.Ctx.Idents.get("drain")); @@ -230,7 +230,7 @@ private: bool IsFollowedBySimpleReturnStmt; SmallVector Releases; - PoolScope() : PoolVar(0), CompoundParent(0), Begin(), End(), + PoolScope() : PoolVar(nullptr), CompoundParent(nullptr), Begin(), End(), IsFollowedBySimpleReturnStmt(false) { } SourceRange getIndentedRange() const { @@ -305,7 +305,7 @@ private: // statement, in which case we will include the return in the scope. if (SI != SE) if (ReturnStmt *retS = dyn_cast(*SI)) - if ((retS->getRetValue() == 0 || + if ((retS->getRetValue() == nullptr || isa(retS->getRetValue()->IgnoreParenCasts())) && findLocationAfterSemi(retS->getLocEnd(), Pass.Ctx).isValid()) { scope.IsFollowedBySimpleReturnStmt = true; @@ -421,7 +421,7 @@ private: ExprSet Refs; SmallVector Scopes; - PoolVarInfo() : Dcl(0) { } + PoolVarInfo() : Dcl(nullptr) { } }; std::map PoolVars; diff --git a/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp b/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp index 31f19cebea..9689f40760 100644 --- a/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp +++ b/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp @@ -205,8 +205,8 @@ static void cleanupDeallocOrFinalize(MigrationPass &pass) { impl_iterator; for (impl_iterator I = impl_iterator(DC->decls_begin()), E = impl_iterator(DC->decls_end()); I != E; ++I) { - ObjCMethodDecl *DeallocM = 0; - ObjCMethodDecl *FinalizeM = 0; + ObjCMethodDecl *DeallocM = nullptr; + ObjCMethodDecl *FinalizeM = nullptr; for (auto *MD : I->instance_methods()) { if (!MD->hasBody()) continue; diff --git a/lib/ARCMigrate/TransGCAttrs.cpp b/lib/ARCMigrate/TransGCAttrs.cpp index cbb3d12d74..10fce19b6f 100644 --- a/lib/ARCMigrate/TransGCAttrs.cpp +++ b/lib/ARCMigrate/TransGCAttrs.cpp @@ -80,7 +80,7 @@ public: } } - bool handleAttr(AttributedTypeLoc TL, Decl *D = 0) { + bool handleAttr(AttributedTypeLoc TL, Decl *D = nullptr) { if (TL.getAttrKind() != AttributedType::attr_objc_ownership) return false; @@ -149,9 +149,9 @@ public: return false; if (ObjCContainerDecl *ContD = dyn_cast(D)) { if (ObjCInterfaceDecl *ID = dyn_cast(ContD)) - return ID->getImplementation() != 0; + return ID->getImplementation() != nullptr; if (ObjCCategoryDecl *CD = dyn_cast(ContD)) - return CD->getImplementation() != 0; + return CD->getImplementation() != nullptr; if (isa(ContD)) return true; return false; diff --git a/lib/ARCMigrate/TransProperties.cpp b/lib/ARCMigrate/TransProperties.cpp index e18da979f7..ab128844b4 100644 --- a/lib/ARCMigrate/TransProperties.cpp +++ b/lib/ARCMigrate/TransProperties.cpp @@ -61,7 +61,8 @@ class PropertiesRewriter { ObjCIvarDecl *IvarD; ObjCPropertyImplDecl *ImplD; - PropData(ObjCPropertyDecl *propD) : PropD(propD), IvarD(0), ImplD(0) { } + PropData(ObjCPropertyDecl *propD) + : PropD(propD), IvarD(nullptr), ImplD(nullptr) {} }; typedef SmallVector PropsTy; @@ -74,7 +75,7 @@ public: : MigrateCtx(MigrateCtx), Pass(MigrateCtx.Pass) { } static void collectProperties(ObjCContainerDecl *D, AtPropDeclsTy &AtProps, - AtPropDeclsTy *PrevAtProps = 0) { + AtPropDeclsTy *PrevAtProps = nullptr) { for (auto *Prop : D->properties()) { if (Prop->getAtLoc().isInvalid()) continue; diff --git a/lib/ARCMigrate/TransProtectedScope.cpp b/lib/ARCMigrate/TransProtectedScope.cpp index 237aa42877..0fcbcbedfe 100644 --- a/lib/ARCMigrate/TransProtectedScope.cpp +++ b/lib/ARCMigrate/TransProtectedScope.cpp @@ -47,7 +47,7 @@ struct CaseInfo { St_Fixed } State; - CaseInfo() : SC(0), State(St_Unchecked) {} + CaseInfo() : SC(nullptr), State(St_Unchecked) {} CaseInfo(SwitchCase *S, SourceRange Range) : SC(S), Range(Range), State(St_Unchecked) {} }; diff --git a/lib/ARCMigrate/TransRetainReleaseDealloc.cpp b/lib/ARCMigrate/TransRetainReleaseDealloc.cpp index 5db5fa084d..33c651952e 100644 --- a/lib/ARCMigrate/TransRetainReleaseDealloc.cpp +++ b/lib/ARCMigrate/TransRetainReleaseDealloc.cpp @@ -44,7 +44,7 @@ class RetainReleaseDeallocRemover : public: RetainReleaseDeallocRemover(MigrationPass &pass) - : Body(0), Pass(pass) { + : Body(nullptr), Pass(pass) { DelegateSel = Pass.Ctx.Selectors.getNullarySelector(&Pass.Ctx.Idents.get("delegate")); FinalizeSel = @@ -248,7 +248,7 @@ private: } std::pair getPreviousAndNextStmt(Expr *E) { - Stmt *prevStmt = 0, *nextStmt = 0; + Stmt *prevStmt = nullptr, *nextStmt = nullptr; if (!E) return std::make_pair(prevStmt, nextStmt); @@ -294,7 +294,7 @@ private: Decl *getReferencedDecl(Expr *E) { if (!E) - return 0; + return nullptr; E = E->IgnoreParenCasts(); if (ObjCMessageExpr *ME = dyn_cast(E)) { @@ -305,7 +305,7 @@ private: case OMF_retain: return getReferencedDecl(ME->getInstanceReceiver()); default: - return 0; + return nullptr; } } if (DeclRefExpr *DRE = dyn_cast(E)) @@ -315,7 +315,7 @@ private: if (ObjCIvarRefExpr *IRE = dyn_cast(E)) return IRE->getDecl(); - return 0; + return nullptr; } /// \brief Check if the retain/release is due to a GCD/XPC macro that are @@ -345,7 +345,7 @@ private: if (!isGCDOrXPC) return; - StmtExpr *StmtE = 0; + StmtExpr *StmtE = nullptr; Stmt *S = Msg; while (S) { if (StmtExpr *SE = dyn_cast(S)) { diff --git a/lib/ARCMigrate/TransUnbridgedCasts.cpp b/lib/ARCMigrate/TransUnbridgedCasts.cpp index 0aa0c89f39..7ca49558a7 100644 --- a/lib/ARCMigrate/TransUnbridgedCasts.cpp +++ b/lib/ARCMigrate/TransUnbridgedCasts.cpp @@ -66,7 +66,8 @@ class UnbridgedCastRewriter : public RecursiveASTVisitor{ mutable std::unique_ptr Removables; public: - UnbridgedCastRewriter(MigrationPass &pass) : Pass(pass), ParentD(0), Body(0) { + UnbridgedCastRewriter(MigrationPass &pass) + : Pass(pass), ParentD(nullptr), Body(nullptr) { SelfII = &Pass.Ctx.Idents.get("self"); } diff --git a/lib/ARCMigrate/TransUnusedInitDelegate.cpp b/lib/ARCMigrate/TransUnusedInitDelegate.cpp index e316c73fc3..98571c035d 100644 --- a/lib/ARCMigrate/TransUnusedInitDelegate.cpp +++ b/lib/ARCMigrate/TransUnusedInitDelegate.cpp @@ -39,7 +39,7 @@ class UnusedInitRewriter : public RecursiveASTVisitor { public: UnusedInitRewriter(MigrationPass &pass) - : Body(0), Pass(pass) { } + : Body(nullptr), Pass(pass) { } void transformBody(Stmt *body, Decl *ParentD) { Body = body; diff --git a/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp b/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp index 3be9fb2f5e..76ce0ec90d 100644 --- a/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp +++ b/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp @@ -35,7 +35,7 @@ class ZeroOutInDeallocRemover : Selector FinalizeSel; public: - ZeroOutInDeallocRemover(MigrationPass &pass) : Pass(pass), SelfD(0) { + ZeroOutInDeallocRemover(MigrationPass &pass) : Pass(pass), SelfD(nullptr) { FinalizeSel = Pass.Ctx.Selectors.getNullarySelector(&Pass.Ctx.Idents.get("finalize")); } @@ -135,7 +135,7 @@ public: // clear out for next method. SynthesizedProperties.clear(); - SelfD = 0; + SelfD = nullptr; Removables.clear(); return true; } diff --git a/lib/ARCMigrate/Transforms.h b/lib/ARCMigrate/Transforms.h index 54be5b5df2..12551d261d 100644 --- a/lib/ARCMigrate/Transforms.h +++ b/lib/ARCMigrate/Transforms.h @@ -189,7 +189,7 @@ class BodyTransform : public RecursiveASTVisitor > { typedef RecursiveASTVisitor > base; public: - BodyTransform(MigrationPass &pass) : Pass(pass), ParentD(0) { } + BodyTransform(MigrationPass &pass) : Pass(pass), ParentD(nullptr) { } bool TraverseStmt(Stmt *rootS) { if (rootS) 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"); diff --git a/utils/TableGen/ClangASTNodesEmitter.cpp b/utils/TableGen/ClangASTNodesEmitter.cpp index 682f9c7ba1..b17a4a374a 100644 --- a/utils/TableGen/ClangASTNodesEmitter.cpp +++ b/utils/TableGen/ClangASTNodesEmitter.cpp @@ -77,7 +77,7 @@ std::pair ClangASTNodesEmitter::EmitNode( ChildIterator i = Tree.lower_bound(Base), e = Tree.upper_bound(Base); - Record *First = 0, *Last = 0; + Record *First = nullptr, *Last = nullptr; // This might be the pseudo-node for Stmt; don't assume it has an Abstract // bit if (Base->getValue("Abstract") && !Base->getValueAsBit("Abstract")) diff --git a/utils/TableGen/ClangAttrEmitter.cpp b/utils/TableGen/ClangAttrEmitter.cpp index b4dc56a6dc..6aca97ac74 100644 --- a/utils/TableGen/ClangAttrEmitter.cpp +++ b/utils/TableGen/ClangAttrEmitter.cpp @@ -132,7 +132,7 @@ static StringRef NormalizeAttrSpelling(StringRef AttrSpelling) { typedef std::vector> ParsedAttrMap; static ParsedAttrMap getParsedAttrList(const RecordKeeper &Records, - ParsedAttrMap *Dupes = 0) { + ParsedAttrMap *Dupes = nullptr) { std::vector Attrs = Records.getAllDerivedDefinitions("Attr"); std::set Seen; ParsedAttrMap R; @@ -959,11 +959,11 @@ namespace { } static std::unique_ptr createArgument(Record &Arg, StringRef Attr, - Record *Search = 0) { + Record *Search = nullptr) { if (!Search) Search = &Arg; - Argument *Ptr = 0; + Argument *Ptr = nullptr; llvm::StringRef ArgName = Search->getName(); if (ArgName == "AlignedArgument") Ptr = new AlignedArgument(Arg, Attr); @@ -2503,7 +2503,7 @@ void EmitClangAttrParsedAttrKinds(RecordKeeper &Records, raw_ostream &OS) { std::vector Spellings = GetFlattenedSpellings(Attr); for (const auto &S : Spellings) { std::string RawSpelling = S.name(); - std::vector *Matches = 0; + std::vector *Matches = nullptr; std::string Spelling, Variety = S.variety(); if (Variety == "CXX11") { Matches = &CXX11; diff --git a/utils/TableGen/ClangDiagnosticsEmitter.cpp b/utils/TableGen/ClangDiagnosticsEmitter.cpp index 58472a9765..b4cc70669e 100644 --- a/utils/TableGen/ClangDiagnosticsEmitter.cpp +++ b/utils/TableGen/ClangDiagnosticsEmitter.cpp @@ -135,7 +135,7 @@ namespace { const Record *ExplicitDef; - GroupInfo() : ExplicitDef(0) {} + GroupInfo() : ExplicitDef(nullptr) {} }; } // end anonymous namespace. @@ -170,7 +170,8 @@ static void groupDiagnostics(const std::vector &Diags, for (unsigned i = 0, e = Diags.size(); i != e; ++i) { const Record *R = Diags[i]; DefInit *DI = dyn_cast(R->getValueInit("Group")); - if (DI == 0) continue; + if (!DI) + continue; assert(R->getValueAsDef("Class")->getName() != "CLASS_NOTE" && "Note can't be in a DiagGroup"); std::string GroupName = DI->getDef()->getValueAsString("GroupName"); @@ -507,7 +508,7 @@ void EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS, // Compute the set of diagnostics that are in -Wpedantic. RecordSet DiagsInPedantic; InferPedantic inferPedantic(DGParentMap, Diags, DiagGroups, DiagsInGroup); - inferPedantic.compute(&DiagsInPedantic, (RecordVec*)0); + inferPedantic.compute(&DiagsInPedantic, (RecordVec*)nullptr); for (unsigned i = 0, e = Diags.size(); i != e; ++i) { const Record &R = *Diags[i]; diff --git a/utils/TableGen/ClangSACheckersEmitter.cpp b/utils/TableGen/ClangSACheckersEmitter.cpp index 8c74064a63..115527ae33 100644 --- a/utils/TableGen/ClangSACheckersEmitter.cpp +++ b/utils/TableGen/ClangSACheckersEmitter.cpp @@ -129,7 +129,7 @@ void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { for (unsigned i = 0, e = checkers.size(); i != e; ++i) { Record *R = checkers[i]; - Record *package = 0; + Record *package = nullptr; if (DefInit * DI = dyn_cast(R->getValueInit("ParentPackage"))) package = DI->getDef(); diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp index 165e749b33..6dfdcb30ff 100644 --- a/utils/TableGen/NeonEmitter.cpp +++ b/utils/TableGen/NeonEmitter.cpp @@ -2655,7 +2655,7 @@ void NeonEmitter::run(raw_ostream &OS) { std::string TypedefTypes( "cQcsQsiQilQlUcQUcUsQUsUiQUiUlQUlhQhfQfdQdPcQPcPsQPsPlQPl"); SmallVector TDTypeVec; - ParseTypes(0, TypedefTypes, TDTypeVec); + ParseTypes(nullptr, TypedefTypes, TDTypeVec); // Emit vector typedefs. bool isA64 = false; -- 2.40.0