mirror of https://github.com/microsoft/clang.git
[C++11] Use 'nullptr'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208163 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5e162947b3
commit
a797c529a6
|
@ -109,7 +109,7 @@ public:
|
|||
ArrayRef<std::string> 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<TypedefDecl>(*D)) {
|
||||
if (!(ASTMigrateActions & FrontendOptions::ObjCMT_NsMacros))
|
||||
|
|
|
@ -70,7 +70,7 @@ class AutoreleasePoolRewriter
|
|||
: public RecursiveASTVisitor<AutoreleasePoolRewriter> {
|
||||
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<ObjCMessageExpr *, 4> 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<ReturnStmt>(*SI))
|
||||
if ((retS->getRetValue() == 0 ||
|
||||
if ((retS->getRetValue() == nullptr ||
|
||||
isa<DeclRefExpr>(retS->getRetValue()->IgnoreParenCasts())) &&
|
||||
findLocationAfterSemi(retS->getLocEnd(), Pass.Ctx).isValid()) {
|
||||
scope.IsFollowedBySimpleReturnStmt = true;
|
||||
|
@ -421,7 +421,7 @@ private:
|
|||
ExprSet Refs;
|
||||
SmallVector<PoolScope, 2> Scopes;
|
||||
|
||||
PoolVarInfo() : Dcl(0) { }
|
||||
PoolVarInfo() : Dcl(nullptr) { }
|
||||
};
|
||||
|
||||
std::map<VarDecl *, PoolVarInfo> PoolVars;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<ObjCContainerDecl>(D)) {
|
||||
if (ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(ContD))
|
||||
return ID->getImplementation() != 0;
|
||||
return ID->getImplementation() != nullptr;
|
||||
if (ObjCCategoryDecl *CD = dyn_cast<ObjCCategoryDecl>(ContD))
|
||||
return CD->getImplementation() != 0;
|
||||
return CD->getImplementation() != nullptr;
|
||||
if (isa<ObjCImplDecl>(ContD))
|
||||
return true;
|
||||
return false;
|
||||
|
|
|
@ -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<PropData, 2> 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;
|
||||
|
|
|
@ -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) {}
|
||||
};
|
||||
|
|
|
@ -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<Stmt *, Stmt *> 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<ObjCMessageExpr>(E)) {
|
||||
|
@ -305,7 +305,7 @@ private:
|
|||
case OMF_retain:
|
||||
return getReferencedDecl(ME->getInstanceReceiver());
|
||||
default:
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E))
|
||||
|
@ -315,7 +315,7 @@ private:
|
|||
if (ObjCIvarRefExpr *IRE = dyn_cast<ObjCIvarRefExpr>(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<StmtExpr>(S)) {
|
||||
|
|
|
@ -66,7 +66,8 @@ class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter>{
|
|||
mutable std::unique_ptr<ExprSet> 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");
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class UnusedInitRewriter : public RecursiveASTVisitor<UnusedInitRewriter> {
|
|||
|
||||
public:
|
||||
UnusedInitRewriter(MigrationPass &pass)
|
||||
: Body(0), Pass(pass) { }
|
||||
: Body(nullptr), Pass(pass) { }
|
||||
|
||||
void transformBody(Stmt *body, Decl *ParentD) {
|
||||
Body = body;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -189,7 +189,7 @@ class BodyTransform : public RecursiveASTVisitor<BodyTransform<BODY_TRANS> > {
|
|||
|
||||
typedef RecursiveASTVisitor<BodyTransform<BODY_TRANS> > base;
|
||||
public:
|
||||
BodyTransform(MigrationPass &pass) : Pass(pass), ParentD(0) { }
|
||||
BodyTransform(MigrationPass &pass) : Pass(pass), ParentD(nullptr) { }
|
||||
|
||||
bool TraverseStmt(Stmt *rootS) {
|
||||
if (rootS)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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<OpaqueValueExpr>(Base)->getSourceExpr();
|
||||
|
@ -1479,7 +1479,7 @@ Stmt *RewriteModernObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *Pseud
|
|||
SmallVector<SourceLocation, 1> 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<Expr*, 1> Args;
|
||||
{
|
||||
DisableReplaceStmtScope S(*this);
|
||||
|
@ -1562,7 +1562,7 @@ Stmt *RewriteModernObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *Pseud
|
|||
// Intentionally empty.
|
||||
SmallVector<SourceLocation, 1> 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<FunctionType>();
|
||||
|
||||
|
@ -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<VarDecl>(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<ObjCContainerDecl>(fieldDecl->getDeclContext());
|
||||
|
||||
TagDecl *TD = 0;
|
||||
|
||||
TagDecl *TD = nullptr;
|
||||
if (Type->isRecordType()) {
|
||||
TD = Type->getAs<RecordType>()->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<DeclRefExpr>(BlockExp)) {
|
||||
CPT = DRE->getType()->getAs<BlockPointerType>();
|
||||
|
@ -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<CompoundStmt>(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<CompoundStmt>(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<CStyleCastExpr>(VD->getInit())) {
|
||||
RewriteCastExpr(CE);
|
||||
|
@ -7045,10 +7045,10 @@ void RewriteModernObjC::RewriteObjCProtocolMetaData(ObjCProtocolDecl *PDecl,
|
|||
// Protocol's property metadata.
|
||||
SmallVector<ObjCPropertyDecl *, 8> 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<ObjCInterfaceType>(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);
|
||||
|
|
|
@ -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<OpaqueValueExpr>(Base)->getSourceExpr();
|
||||
|
@ -1263,7 +1263,7 @@ Stmt *RewriteObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *PseudoOp) {
|
|||
SmallVector<SourceLocation, 1> 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<SourceLocation, 1> SelLocs;
|
||||
SmallVector<Expr*, 1> 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<FunctionType>();
|
||||
|
||||
|
@ -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<VarDecl>(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<DeclRefExpr>(BlockExp)) {
|
||||
CPT = DRE->getType()->getAs<BlockPointerType>();
|
||||
|
@ -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<CompoundStmt>(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<CompoundStmt>(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<CStyleCastExpr>(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<ObjCInterfaceType>(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<ObjCInterfaceType>(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");
|
||||
|
|
|
@ -77,7 +77,7 @@ std::pair<Record *, Record *> 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"))
|
||||
|
|
|
@ -132,7 +132,7 @@ static StringRef NormalizeAttrSpelling(StringRef AttrSpelling) {
|
|||
typedef std::vector<std::pair<std::string, Record *>> ParsedAttrMap;
|
||||
|
||||
static ParsedAttrMap getParsedAttrList(const RecordKeeper &Records,
|
||||
ParsedAttrMap *Dupes = 0) {
|
||||
ParsedAttrMap *Dupes = nullptr) {
|
||||
std::vector<Record *> Attrs = Records.getAllDerivedDefinitions("Attr");
|
||||
std::set<std::string> Seen;
|
||||
ParsedAttrMap R;
|
||||
|
@ -959,11 +959,11 @@ namespace {
|
|||
}
|
||||
|
||||
static std::unique_ptr<Argument> 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<FlattenedSpelling> Spellings = GetFlattenedSpellings(Attr);
|
||||
for (const auto &S : Spellings) {
|
||||
std::string RawSpelling = S.name();
|
||||
std::vector<StringMatcher::StringPair> *Matches = 0;
|
||||
std::vector<StringMatcher::StringPair> *Matches = nullptr;
|
||||
std::string Spelling, Variety = S.variety();
|
||||
if (Variety == "CXX11") {
|
||||
Matches = &CXX11;
|
||||
|
|
|
@ -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<Record*> &Diags,
|
|||
for (unsigned i = 0, e = Diags.size(); i != e; ++i) {
|
||||
const Record *R = Diags[i];
|
||||
DefInit *DI = dyn_cast<DefInit>(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];
|
||||
|
|
|
@ -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<DefInit>(R->getValueInit("ParentPackage")))
|
||||
package = DI->getDef();
|
||||
|
|
|
@ -2655,7 +2655,7 @@ void NeonEmitter::run(raw_ostream &OS) {
|
|||
std::string TypedefTypes(
|
||||
"cQcsQsiQilQlUcQUcUsQUsUiQUiUlQUlhQhfQfdQdPcQPcPsQPsPlQPl");
|
||||
SmallVector<StringRef, 24> TDTypeVec;
|
||||
ParseTypes(0, TypedefTypes, TDTypeVec);
|
||||
ParseTypes(nullptr, TypedefTypes, TDTypeVec);
|
||||
|
||||
// Emit vector typedefs.
|
||||
bool isA64 = false;
|
||||
|
|
Loading…
Reference in New Issue