[C++11] Use 'nullptr'. CodeGen edition.
llvm-svn: 209272
This commit is contained in:
@@ -35,23 +35,25 @@ using namespace CodeGen;
|
||||
|
||||
CodeGenFunction::CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext)
|
||||
: CodeGenTypeCache(cgm), CGM(cgm), Target(cgm.getTarget()),
|
||||
Builder(cgm.getModule().getContext()), CapturedStmtInfo(0),
|
||||
Builder(cgm.getModule().getContext()), CapturedStmtInfo(nullptr),
|
||||
SanitizePerformTypeCheck(CGM.getSanOpts().Null |
|
||||
CGM.getSanOpts().Alignment |
|
||||
CGM.getSanOpts().ObjectSize |
|
||||
CGM.getSanOpts().Vptr),
|
||||
SanOpts(&CGM.getSanOpts()), AutoreleaseResult(false), BlockInfo(0),
|
||||
BlockPointer(0), LambdaThisCaptureField(0), NormalCleanupDest(0),
|
||||
NextCleanupDestIndex(1), FirstBlockInfo(0), EHResumeBlock(0),
|
||||
ExceptionSlot(0), EHSelectorSlot(0), DebugInfo(CGM.getModuleDebugInfo()),
|
||||
DisableDebugInfo(false), DidCallStackSave(false), IndirectBranch(0),
|
||||
PGO(cgm), SwitchInsn(0), SwitchWeights(0),
|
||||
CaseRangeBlock(0), UnreachableBlock(0), NumReturnExprs(0),
|
||||
NumSimpleReturnExprs(0), CXXABIThisDecl(0), CXXABIThisValue(0),
|
||||
CXXThisValue(0), CXXDefaultInitExprThis(0),
|
||||
CXXStructorImplicitParamDecl(0), CXXStructorImplicitParamValue(0),
|
||||
OutermostConditional(0), CurLexicalScope(0), TerminateLandingPad(0),
|
||||
TerminateHandler(0), TrapBB(0) {
|
||||
SanOpts(&CGM.getSanOpts()), AutoreleaseResult(false), BlockInfo(nullptr),
|
||||
BlockPointer(nullptr), LambdaThisCaptureField(nullptr),
|
||||
NormalCleanupDest(nullptr), NextCleanupDestIndex(1),
|
||||
FirstBlockInfo(nullptr), EHResumeBlock(nullptr), ExceptionSlot(nullptr),
|
||||
EHSelectorSlot(nullptr), DebugInfo(CGM.getModuleDebugInfo()),
|
||||
DisableDebugInfo(false), DidCallStackSave(false), IndirectBranch(nullptr),
|
||||
PGO(cgm), SwitchInsn(nullptr), SwitchWeights(nullptr),
|
||||
CaseRangeBlock(nullptr), UnreachableBlock(nullptr), NumReturnExprs(0),
|
||||
NumSimpleReturnExprs(0), CXXABIThisDecl(nullptr),
|
||||
CXXABIThisValue(nullptr), CXXThisValue(nullptr),
|
||||
CXXDefaultInitExprThis(nullptr), CXXStructorImplicitParamDecl(nullptr),
|
||||
CXXStructorImplicitParamValue(nullptr), OutermostConditional(nullptr),
|
||||
CurLexicalScope(nullptr), TerminateLandingPad(nullptr),
|
||||
TerminateHandler(nullptr), TrapBB(nullptr) {
|
||||
if (!suppressNewContext)
|
||||
CGM.getCXXABI().getMangleContext().startNewFunction();
|
||||
|
||||
@@ -261,7 +263,7 @@ void CodeGenFunction::FinishFunction(SourceLocation EndLoc) {
|
||||
|
||||
// Remove the AllocaInsertPt instruction, which is just a convenience for us.
|
||||
llvm::Instruction *Ptr = AllocaInsertPt;
|
||||
AllocaInsertPt = 0;
|
||||
AllocaInsertPt = nullptr;
|
||||
Ptr->eraseFromParent();
|
||||
|
||||
// If someone took the address of a label but never did an indirect goto, we
|
||||
@@ -530,7 +532,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD,
|
||||
|
||||
DidCallStackSave = false;
|
||||
CurCodeDecl = D;
|
||||
CurFuncDecl = (D ? D->getNonClosureContext() : 0);
|
||||
CurFuncDecl = (D ? D->getNonClosureContext() : nullptr);
|
||||
FnRetTy = RetTy;
|
||||
CurFn = Fn;
|
||||
CurFnInfo = &FnInfo;
|
||||
@@ -613,7 +615,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD,
|
||||
|
||||
if (RetTy->isVoidType()) {
|
||||
// Void type; nothing to return.
|
||||
ReturnValue = 0;
|
||||
ReturnValue = nullptr;
|
||||
|
||||
// Count the implicit return.
|
||||
if (!endsWithReturn(D))
|
||||
@@ -712,7 +714,7 @@ void CodeGenFunction::EmitFunctionBody(FunctionArgList &Args,
|
||||
/// this just calls EmitBlock().
|
||||
void CodeGenFunction::EmitBlockWithFallThrough(llvm::BasicBlock *BB,
|
||||
RegionCounter &Cnt) {
|
||||
llvm::BasicBlock *SkipCountBB = 0;
|
||||
llvm::BasicBlock *SkipCountBB = nullptr;
|
||||
if (HaveInsertPoint() && CGM.getCodeGenOpts().ProfileInstrGenerate) {
|
||||
// When instrumenting for profiling, the fallthrough to certain
|
||||
// statements needs to skip over the instrumentation code so that we
|
||||
@@ -763,7 +765,7 @@ void CodeGenFunction::GenerateCode(GlobalDecl GD, llvm::Function *Fn,
|
||||
|
||||
// Check if we should generate debug info for this function.
|
||||
if (FD->hasAttr<NoDebugAttr>())
|
||||
DebugInfo = NULL; // disable debug info indefinitely for this function
|
||||
DebugInfo = nullptr; // disable debug info indefinitely for this function
|
||||
|
||||
FunctionArgList Args;
|
||||
QualType ResTy = FD->getReturnType();
|
||||
@@ -876,7 +878,7 @@ void CodeGenFunction::GenerateCode(GlobalDecl GD, llvm::Function *Fn,
|
||||
/// that we can just remove the code.
|
||||
bool CodeGenFunction::ContainsLabel(const Stmt *S, bool IgnoreCaseStmts) {
|
||||
// Null statement, not a label!
|
||||
if (S == 0) return false;
|
||||
if (!S) return false;
|
||||
|
||||
// If this is a label, we have to emit the code, consider something like:
|
||||
// if (0) { ... foo: bar(); } goto foo;
|
||||
@@ -908,7 +910,7 @@ bool CodeGenFunction::ContainsLabel(const Stmt *S, bool IgnoreCaseStmts) {
|
||||
/// inside of it, this is fine.
|
||||
bool CodeGenFunction::containsBreak(const Stmt *S) {
|
||||
// Null statement, not a label!
|
||||
if (S == 0) return false;
|
||||
if (!S) return false;
|
||||
|
||||
// If this is a switch or loop that defines its own break scope, then we can
|
||||
// include it and anything inside of it.
|
||||
@@ -1234,7 +1236,7 @@ CodeGenFunction::EmitNullInitialization(llvm::Value *DestPtr, QualType Ty) {
|
||||
}
|
||||
} else {
|
||||
SizeVal = CGM.getSize(Size);
|
||||
vla = 0;
|
||||
vla = nullptr;
|
||||
}
|
||||
|
||||
// If the type contains a pointer to data member we can't memset it to zero.
|
||||
@@ -1271,7 +1273,7 @@ CodeGenFunction::EmitNullInitialization(llvm::Value *DestPtr, QualType Ty) {
|
||||
|
||||
llvm::BlockAddress *CodeGenFunction::GetAddrOfLabel(const LabelDecl *L) {
|
||||
// Make sure that there is a block for the indirect goto.
|
||||
if (IndirectBranch == 0)
|
||||
if (!IndirectBranch)
|
||||
GetIndirectGotoBlock();
|
||||
|
||||
llvm::BasicBlock *BB = getJumpDestForLabel(L).getBlock();
|
||||
@@ -1305,7 +1307,7 @@ llvm::Value *CodeGenFunction::emitArrayLength(const ArrayType *origArrayType,
|
||||
|
||||
// If it's a VLA, we have to load the stored size. Note that
|
||||
// this is the size of the VLA in bytes, not its size in elements.
|
||||
llvm::Value *numVLAElements = 0;
|
||||
llvm::Value *numVLAElements = nullptr;
|
||||
if (isa<VariableArrayType>(arrayType)) {
|
||||
numVLAElements = getVLASize(cast<VariableArrayType>(arrayType)).first;
|
||||
|
||||
@@ -1398,7 +1400,7 @@ CodeGenFunction::getVLASize(QualType type) {
|
||||
std::pair<llvm::Value*, QualType>
|
||||
CodeGenFunction::getVLASize(const VariableArrayType *type) {
|
||||
// The number of elements so far; always size_t.
|
||||
llvm::Value *numElements = 0;
|
||||
llvm::Value *numElements = nullptr;
|
||||
|
||||
QualType elementType;
|
||||
do {
|
||||
|
||||
Reference in New Issue
Block a user