[C++11] Use 'nullptr'. Tools edition.

llvm-svn: 210422
This commit is contained in:
Craig Topper 2014-06-08 08:38:04 +00:00
parent 71e07869af
commit 69186e731f
31 changed files with 271 additions and 265 deletions

View File

@ -81,10 +81,10 @@ class PrintTransforms : public MigrationProcess::RewriteListener {
public:
PrintTransforms(raw_ostream &OS)
: Ctx(0), OS(OS) { }
: Ctx(nullptr), OS(OS) {}
void start(ASTContext &ctx) override { Ctx = &ctx; }
void finish() override { Ctx = 0; }
void finish() override { Ctx = nullptr; }
void insert(SourceLocation loc, StringRef text) override {
assert(Ctx);
@ -112,7 +112,7 @@ static bool checkForMigration(StringRef resourcesPath,
IntrusiveRefCntPtr<DiagnosticsEngine> Diags(
new DiagnosticsEngine(DiagID, &*DiagOpts, DiagClient));
// Chain in -verify checker, if requested.
VerifyDiagnosticConsumer *verifyDiag = 0;
VerifyDiagnosticConsumer *verifyDiag = nullptr;
if (VerifyDiags) {
verifyDiag = new VerifyDiagnosticConsumer(*Diags);
Diags->setClient(verifyDiag);

View File

@ -32,7 +32,7 @@ DiagTools::~DiagTools() { delete getTools(tools); }
DiagTool *DiagTools::getTool(llvm::StringRef toolCmd) {
ToolMap::iterator it = getTools(tools)->find(toolCmd);
return (it == getTools(tools)->end()) ? 0 : it->getValue();
return (it == getTools(tools)->end()) ? nullptr : it->getValue();
}
void DiagTools::registerTool(DiagTool *tool) {

View File

@ -50,7 +50,7 @@ static bool orderByID(const DiagnosticRecord &Left,
}
const DiagnosticRecord &diagtool::getDiagnosticForID(short DiagID) {
DiagnosticRecord Key = {0, DiagID, 0};
DiagnosticRecord Key = {nullptr, DiagID, 0};
const DiagnosticRecord *Result =
std::lower_bound(std::begin(BuiltinDiagnosticsByID),
@ -81,7 +81,7 @@ GroupRecord::subgroup_iterator GroupRecord::subgroup_begin() const {
}
GroupRecord::subgroup_iterator GroupRecord::subgroup_end() const {
return 0;
return nullptr;
}
GroupRecord::diagnostics_iterator GroupRecord::diagnostics_begin() const {
@ -89,7 +89,7 @@ GroupRecord::diagnostics_iterator GroupRecord::diagnostics_begin() const {
}
GroupRecord::diagnostics_iterator GroupRecord::diagnostics_end() const {
return 0;
return nullptr;
}
llvm::ArrayRef<GroupRecord> diagtool::getDiagnosticGroups() {

View File

@ -48,7 +48,7 @@ namespace diagtool {
friend struct GroupRecord;
group_iterator(const short *Start) : CurrentID(Start) {
if (CurrentID && *CurrentID == -1)
CurrentID = 0;
CurrentID = nullptr;
}
public:
@ -70,7 +70,7 @@ namespace diagtool {
group_iterator &operator++() {
++CurrentID;
if (*CurrentID == -1)
CurrentID = 0;
CurrentID = nullptr;
return *this;
}

View File

@ -68,14 +68,14 @@ createDiagnostics(unsigned int argc, char **argv) {
createInvocationFromCommandLine(ArrayRef<const char *>(argv, argc),
InterimDiags));
if (!Invocation)
return NULL;
return nullptr;
// Build the diagnostics parser
IntrusiveRefCntPtr<DiagnosticsEngine> FinalDiags =
CompilerInstance::createDiagnostics(&Invocation->getDiagnosticOpts());
if (!FinalDiags)
return NULL;
return nullptr;
// Flush any errors created when initializing everything. This could happen
// for invalid command lines, which will probably give non-sensical results.
DiagsBuffer->FlushDiagnostics(*FinalDiags);

View File

@ -267,7 +267,7 @@ static formatted_raw_ostream *GetOutputStream(AssemblerInvocation &Opts,
Diags.Report(diag::err_fe_unable_to_open_output)
<< Opts.OutputPath << Error;
delete Out;
return 0;
return nullptr;
}
return new formatted_raw_ostream(*Out, formatted_raw_ostream::DELETE_STREAM);
@ -354,8 +354,8 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,
MCInstPrinter *IP =
TheTarget->createMCInstPrinter(Opts.OutputAsmVariant, *MAI, *MCII, *MRI,
*STI);
MCCodeEmitter *CE = 0;
MCAsmBackend *MAB = 0;
MCCodeEmitter *CE = nullptr;
MCAsmBackend *MAB = nullptr;
if (Opts.ShowEncoding) {
CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, *STI, Ctx);
MAB = TheTarget->createMCAsmBackend(*MRI, Opts.Triple, Opts.CPU);
@ -469,7 +469,7 @@ int cc1as_main(const char **ArgBegin, const char **ArgEnd,
Args[0] = "clang (LLVM option parsing)";
for (unsigned i = 0; i != NumArgs; ++i)
Args[i + 1] = Asm.LLVMArgs[i].c_str();
Args[NumArgs + 1] = 0;
Args[NumArgs + 1] = nullptr;
llvm::cl::ParseCommandLineOptions(NumArgs + 1, Args);
}

View File

@ -214,15 +214,15 @@ static void ParseProgName(SmallVectorImpl<const char *> &ArgVector,
const char *Suffix;
const char *ModeFlag;
} suffixes [] = {
{ "clang", 0 },
{ "clang", nullptr },
{ "clang++", "--driver-mode=g++" },
{ "clang-c++", "--driver-mode=g++" },
{ "clang-cc", 0 },
{ "clang-cc", nullptr },
{ "clang-cpp", "--driver-mode=cpp" },
{ "clang-g++", "--driver-mode=g++" },
{ "clang-gcc", 0 },
{ "clang-gcc", nullptr },
{ "clang-cl", "--driver-mode=cl" },
{ "cc", 0 },
{ "cc", nullptr },
{ "cpp", "--driver-mode=cpp" },
{ "cl" , "--driver-mode=cl" },
{ "++", "--driver-mode=g++" },
@ -420,7 +420,7 @@ int main(int argc_, const char **argv_) {
// Force a crash to test the diagnostics.
if (::getenv("FORCE_CLANG_DIAGNOSTICS_CRASH")) {
Diags.Report(diag::err_drv_force_crash) << "FORCE_CLANG_DIAGNOSTICS_CRASH";
const Command *FailingCommand = 0;
const Command *FailingCommand = nullptr;
FailingCommands.push_back(std::make_pair(-1, FailingCommand));
}

View File

@ -40,7 +40,7 @@ CXRemapping clang_getRemappings(const char *migrate_dir_path) {
if (!migrate_dir_path) {
if (Logging)
llvm::errs() << "clang_getRemappings was called with NULL parameter\n";
return 0;
return nullptr;
}
bool exists = false;
@ -51,7 +51,7 @@ CXRemapping clang_getRemappings(const char *migrate_dir_path) {
<< "\")\n";
llvm::errs() << "\"" << migrate_dir_path << "\" does not exist\n";
}
return 0;
return nullptr;
}
TextDiagnosticBuffer diagBuffer;
@ -67,7 +67,7 @@ CXRemapping clang_getRemappings(const char *migrate_dir_path) {
I = diagBuffer.err_begin(), E = diagBuffer.err_end(); I != E; ++I)
llvm::errs() << I->second << '\n';
}
return 0;
return nullptr;
}
return remap.release();
@ -90,7 +90,7 @@ CXRemapping clang_getRemappingsFromFileList(const char **filePaths,
if (Logging)
llvm::errs() << "clang_getRemappingsFromFileList was called with "
"NULL filePaths\n";
return 0;
return nullptr;
}
TextDiagnosticBuffer diagBuffer;

View File

@ -63,15 +63,15 @@ using namespace clang::cxindex;
CXTranslationUnit cxtu::MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *AU) {
if (!AU)
return 0;
return nullptr;
assert(CIdx);
CXTranslationUnit D = new CXTranslationUnitImpl();
D->CIdx = CIdx;
D->TheASTUnit = AU;
D->StringPool = new cxstring::CXStringPool();
D->Diagnostics = 0;
D->Diagnostics = nullptr;
D->OverridenCursorsPool = createOverridenCXCursorsPool();
D->CommentToXML = 0;
D->CommentToXML = nullptr;
return D;
}
@ -321,7 +321,7 @@ bool CursorVisitor::visitDeclsFromFileRegion(FileID File,
assert(!Decls.empty());
bool VisitedAtLeastOnce = false;
DeclContext *CurDC = 0;
DeclContext *CurDC = nullptr;
SmallVectorImpl<Decl *>::iterator DIt = Decls.begin();
for (SmallVectorImpl<Decl *>::iterator DE = Decls.end(); DIt != DE; ++DIt) {
Decl *D = *DIt;
@ -350,7 +350,7 @@ bool CursorVisitor::visitDeclsFromFileRegion(FileID File,
FileDI_current = &DIt;
FileDE_current = DE;
} else {
FileDI_current = 0;
FileDI_current = nullptr;
}
if (Visit(MakeCXCursor(D, TU, Range), /*CheckedRegionOfInterest=*/true))
@ -1703,7 +1703,7 @@ class DeclVisit : public VisitorJob {
public:
DeclVisit(const Decl *D, CXCursor parent, bool isFirst) :
VisitorJob(parent, VisitorJob::DeclVisitKind,
D, isFirst ? (void*) 1 : (void*) 0) {}
D, isFirst ? (void*) 1 : (void*) nullptr) {}
static bool classof(const VisitorJob *VJ) {
return VJ->getKind() == DeclVisitKind;
}
@ -2366,7 +2366,7 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) {
case CXChildVisit_Continue: break;
case CXChildVisit_Recurse:
if (PostChildrenVisitor)
WL.push_back(PostChildrenVisit(0, Cursor));
WL.push_back(PostChildrenVisit(nullptr, Cursor));
EnqueueWorkList(WL, S);
break;
}
@ -2495,7 +2495,7 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) {
}
bool CursorVisitor::Visit(const Stmt *S) {
VisitorWorkList *WL = 0;
VisitorWorkList *WL = nullptr;
if (!WorkListFreeList.empty()) {
WL = WorkListFreeList.back();
WL->clear();
@ -2513,10 +2513,10 @@ bool CursorVisitor::Visit(const Stmt *S) {
namespace {
typedef SmallVector<SourceRange, 4> RefNamePieces;
RefNamePieces buildPieces(unsigned NameFlags, bool IsMemberRefExpr,
const DeclarationNameInfo &NI,
const SourceRange &QLoc,
const ASTTemplateArgumentListInfo *TemplateArgs = 0){
RefNamePieces
buildPieces(unsigned NameFlags, bool IsMemberRefExpr,
const DeclarationNameInfo &NI, const SourceRange &QLoc,
const ASTTemplateArgumentListInfo *TemplateArgs = nullptr) {
const bool WantQualifier = NameFlags & CXNameRange_WantQualifier;
const bool WantTemplateArgs = NameFlags & CXNameRange_WantTemplateArgs;
const bool WantSinglePiece = NameFlags & CXNameRange_WantSinglePiece;
@ -2579,7 +2579,7 @@ CXIndex clang_createIndex(int excludeDeclarationsFromPCH,
{
llvm::sys::ScopedLock L(EnableMultithreadingMutex);
if (!EnabledMultithreading) {
llvm::install_fatal_error_handler(fatal_error_handler, 0);
llvm::install_fatal_error_handler(fatal_error_handler, nullptr);
llvm::llvm_start_multithreaded();
EnabledMultithreading = true;
}
@ -2639,7 +2639,7 @@ enum CXErrorCode clang_createTranslationUnit2(CXIndex CIdx,
const char *ast_filename,
CXTranslationUnit *out_TU) {
if (out_TU)
*out_TU = NULL;
*out_TU = nullptr;
if (!CIdx || !ast_filename || !out_TU)
return CXError_InvalidArguments;
@ -2705,12 +2705,12 @@ static void clang_parseTranslationUnit_Impl(void *UserData) {
// Set up the initial return values.
if (out_TU)
*out_TU = NULL;
*out_TU = nullptr;
PTUI->result = CXError_Failure;
// Check arguments.
if (!CIdx || !out_TU ||
(unsaved_files == NULL && num_unsaved_files != 0)) {
(unsaved_files == nullptr && num_unsaved_files != 0)) {
PTUI->result = CXError_InvalidArguments;
return;
}
@ -3010,14 +3010,14 @@ static void clang_reparseTranslationUnit_Impl(void *UserData) {
RTUI->result = CXError_InvalidArguments;
return;
}
if (unsaved_files == NULL && num_unsaved_files != 0) {
if (unsaved_files == nullptr && num_unsaved_files != 0) {
RTUI->result = CXError_InvalidArguments;
return;
}
// Reset the associated diagnostics.
delete static_cast<CXDiagnosticSetImpl*>(TU->Diagnostics);
TU->Diagnostics = 0;
TU->Diagnostics = nullptr;
CIndexer *CXXIdx = TU->CIdx;
if (CXXIdx->isOptEnabled(CXGlobalOpt_ThreadBackgroundPriorityForEditing))
@ -3122,7 +3122,7 @@ time_t clang_getFileTime(CXFile SFile) {
CXFile clang_getFile(CXTranslationUnit TU, const char *file_name) {
if (isNotUsableTU(TU)) {
LOG_BAD_TU(TU);
return 0;
return nullptr;
}
ASTUnit *CXXUnit = cxtu::getASTUnit(TU);
@ -3209,8 +3209,8 @@ static const Decl *getDeclFromExpr(const Stmt *E) {
if (isa<NonTypeTemplateParmDecl>(SizeOfPack->getPack()) ||
isa<ParmVarDecl>(SizeOfPack->getPack()))
return SizeOfPack->getPack();
return 0;
return nullptr;
}
static SourceLocation getLocationFromExpr(const Expr *E) {
@ -4082,10 +4082,11 @@ CXCursor clang_getCursor(CXTranslationUnit TU, CXSourceLocation Loc) {
CXString SearchFileName, ResultFileName, KindSpelling, USR;
const char *IsDef = clang_isCursorDefinition(Result)? " (Definition)" : "";
CXSourceLocation ResultLoc = clang_getCursorLocation(Result);
clang_getFileLocation(Loc, &SearchFile, &SearchLine, &SearchColumn, 0);
clang_getFileLocation(Loc, &SearchFile, &SearchLine, &SearchColumn,
nullptr);
clang_getFileLocation(ResultLoc, &ResultFile, &ResultLine,
&ResultColumn, 0);
&ResultColumn, nullptr);
SearchFileName = clang_getFileName(SearchFile);
ResultFileName = clang_getFileName(ResultFile);
KindSpelling = clang_getCursorKindSpelling(Result.kind);
@ -4109,7 +4110,7 @@ CXCursor clang_getCursor(CXTranslationUnit TU, CXSourceLocation Loc) {
CXFile DefinitionFile;
unsigned DefinitionLine, DefinitionColumn;
clang_getFileLocation(DefinitionLoc, &DefinitionFile,
&DefinitionLine, &DefinitionColumn, 0);
&DefinitionLine, &DefinitionColumn, nullptr);
CXString DefinitionFileName = clang_getFileName(DefinitionFile);
*Log << llvm::format(" -> %s(%s:%d:%d)",
clang_getCString(DefinitionKindSpelling),
@ -4136,9 +4137,9 @@ unsigned clang_equalCursors(CXCursor X, CXCursor Y) {
// when visiting a DeclStmt currently, the AST should be enhanced to be able
// to provide that kind of info.
if (clang_isDeclaration(X.kind))
X.data[1] = 0;
X.data[1] = nullptr;
if (clang_isDeclaration(Y.kind))
Y.data[1] = 0;
Y.data[1] = nullptr;
return X == Y;
}
@ -4716,7 +4717,7 @@ CXCursor clang_getCursorDefinition(CXCursor C) {
case Decl::CXXConstructor:
case Decl::CXXDestructor:
case Decl::CXXConversion: {
const FunctionDecl *Def = 0;
const FunctionDecl *Def = nullptr;
if (cast<FunctionDecl>(D)->getBody(Def))
return MakeCXCursor(Def, TU);
return clang_getNullCursor();
@ -4732,7 +4733,7 @@ CXCursor clang_getCursorDefinition(CXCursor C) {
}
case Decl::FunctionTemplate: {
const FunctionDecl *Def = 0;
const FunctionDecl *Def = nullptr;
if (cast<FunctionTemplateDecl>(D)->getTemplatedDecl()->getBody(Def))
return MakeCXCursor(Def->getDescribedFunctionTemplate(), TU);
return clang_getNullCursor();
@ -5139,10 +5140,10 @@ static void getTokens(ASTUnit *CXXUnit, SourceRange Range,
CXTok.ptr_data = II;
} else if (Tok.is(tok::comment)) {
CXTok.int_data[0] = CXToken_Comment;
CXTok.ptr_data = 0;
CXTok.ptr_data = nullptr;
} else {
CXTok.int_data[0] = CXToken_Punctuation;
CXTok.ptr_data = 0;
CXTok.ptr_data = nullptr;
}
CXTokens.push_back(CXTok);
previousWasAt = Tok.is(tok::at);
@ -5156,7 +5157,7 @@ void clang_tokenize(CXTranslationUnit TU, CXSourceRange Range,
}
if (Tokens)
*Tokens = 0;
*Tokens = nullptr;
if (NumTokens)
*NumTokens = 0;
@ -5713,7 +5714,7 @@ static void annotatePreprocessorTokens(CXTranslationUnit TU,
if (lexNext(Lex, Tok, NextIdx, NumTokens))
break;
MacroInfo *MI = 0;
MacroInfo *MI = nullptr;
if (Tok.is(tok::raw_identifier) && Tok.getRawIdentifier() == "define") {
if (lexNext(Lex, Tok, NextIdx, NumTokens))
break;
@ -6154,7 +6155,7 @@ CXLanguageKind clang_getCursorLanguage(CXCursor cursor) {
/// function template.
static const Decl *maybeGetTemplateCursor(const Decl *D) {
if (!D)
return 0;
return nullptr;
if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
if (FunctionTemplateDecl *FunTmpl = FD->getDescribedFunctionTemplate())
@ -6206,8 +6207,8 @@ CXCursor clang_getCursorLexicalParent(CXCursor cursor) {
CXFile clang_getIncludedFile(CXCursor cursor) {
if (cursor.kind != CXCursor_InclusionDirective)
return 0;
return nullptr;
const InclusionDirective *ID = getCursorInclusionDirective(cursor);
return const_cast<FileEntry *>(ID->getFile());
}
@ -6345,7 +6346,7 @@ CXModule clang_Cursor_getModule(CXCursor C) {
return ImportD->getImportedModule();
}
return 0;
return nullptr;
}
CXModule clang_getModuleForFile(CXTranslationUnit TU, CXFile File) {
@ -6370,14 +6371,14 @@ CXModule clang_getModuleForFile(CXTranslationUnit TU, CXFile File) {
CXFile clang_Module_getASTFile(CXModule CXMod) {
if (!CXMod)
return 0;
return nullptr;
Module *Mod = static_cast<Module*>(CXMod);
return const_cast<FileEntry *>(Mod->getASTFile());
}
CXModule clang_Module_getParent(CXModule CXMod) {
if (!CXMod)
return 0;
return nullptr;
Module *Mod = static_cast<Module*>(CXMod);
return Mod->Parent;
}
@ -6421,10 +6422,10 @@ CXFile clang_Module_getTopLevelHeader(CXTranslationUnit TU,
CXModule CXMod, unsigned Index) {
if (isNotUsableTU(TU)) {
LOG_BAD_TU(TU);
return 0;
return nullptr;
}
if (!CXMod)
return 0;
return nullptr;
Module *Mod = static_cast<Module*>(CXMod);
FileManager &FileMgr = cxtu::getASTUnit(TU)->getFileManager();
@ -6432,7 +6433,7 @@ CXFile clang_Module_getTopLevelHeader(CXTranslationUnit TU,
if (Index < TopHeaders.size())
return const_cast<FileEntry *>(TopHeaders[Index]);
return 0;
return nullptr;
}
} // end: extern "C"
@ -6448,7 +6449,7 @@ unsigned clang_CXXMethod_isPureVirtual(CXCursor C) {
const Decl *D = cxcursor::getCursorDecl(C);
const CXXMethodDecl *Method =
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : 0;
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : nullptr;
return (Method && Method->isVirtual() && Method->isPure()) ? 1 : 0;
}
@ -6458,7 +6459,7 @@ unsigned clang_CXXMethod_isConst(CXCursor C) {
const Decl *D = cxcursor::getCursorDecl(C);
const CXXMethodDecl *Method =
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : 0;
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : nullptr;
return (Method && (Method->getTypeQualifiers() & Qualifiers::Const)) ? 1 : 0;
}
@ -6468,7 +6469,7 @@ unsigned clang_CXXMethod_isStatic(CXCursor C) {
const Decl *D = cxcursor::getCursorDecl(C);
const CXXMethodDecl *Method =
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : 0;
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : nullptr;
return (Method && Method->isStatic()) ? 1 : 0;
}
@ -6478,7 +6479,7 @@ unsigned clang_CXXMethod_isVirtual(CXCursor C) {
const Decl *D = cxcursor::getCursorDecl(C);
const CXXMethodDecl *Method =
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : 0;
D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : nullptr;
return (Method && Method->isVirtual()) ? 1 : 0;
}
} // end: extern "C"
@ -6566,7 +6567,7 @@ const char *clang_getTUResourceUsageName(CXTUResourceUsageKind kind) {
CXTUResourceUsage clang_getCXTUResourceUsage(CXTranslationUnit TU) {
if (isNotUsableTU(TU)) {
LOG_BAD_TU(TU);
CXTUResourceUsage usage = { (void*) 0, 0, 0 };
CXTUResourceUsage usage = { (void*) nullptr, 0, nullptr };
return usage;
}
@ -6648,10 +6649,10 @@ CXTUResourceUsage clang_getCXTUResourceUsage(CXTranslationUnit TU) {
createCXTUResourceUsageEntry(*entries,
CXTUResourceUsage_Preprocessor_HeaderSearch,
pp.getHeaderSearchInfo().getTotalMemory());
CXTUResourceUsage usage = { (void*) entries.get(),
(unsigned) entries->size(),
entries->size() ? &(*entries)[0] : 0 };
entries->size() ? &(*entries)[0] : nullptr };
entries.release();
return usage;
}
@ -6664,7 +6665,7 @@ void clang_disposeCXTUResourceUsage(CXTUResourceUsage usage) {
CXSourceRangeList *clang_getSkippedRanges(CXTranslationUnit TU, CXFile file) {
CXSourceRangeList *skipped = new CXSourceRangeList;
skipped->count = 0;
skipped->ranges = 0;
skipped->ranges = nullptr;
if (isNotUsableTU(TU)) {
LOG_BAD_TU(TU);
@ -6783,9 +6784,9 @@ MacroInfo *cxindex::getMacroInfo(const IdentifierInfo &II,
SourceLocation MacroDefLoc,
CXTranslationUnit TU){
if (MacroDefLoc.isInvalid() || !TU)
return 0;
return nullptr;
if (!II.hadMacroDefinition())
return 0;
return nullptr;
ASTUnit *Unit = cxtu::getASTUnit(TU);
Preprocessor &PP = Unit->getPreprocessor();
@ -6798,16 +6799,16 @@ MacroInfo *cxindex::getMacroInfo(const IdentifierInfo &II,
}
}
return 0;
return nullptr;
}
const MacroInfo *cxindex::getMacroInfo(const MacroDefinition *MacroDef,
CXTranslationUnit TU) {
if (!MacroDef || !TU)
return 0;
return nullptr;
const IdentifierInfo *II = MacroDef->getName();
if (!II)
return 0;
return nullptr;
return getMacroInfo(*II, MacroDef->getLocation(), TU);
}
@ -6816,12 +6817,12 @@ MacroDefinition *cxindex::checkForMacroInMacroDefinition(const MacroInfo *MI,
const Token &Tok,
CXTranslationUnit TU) {
if (!MI || !TU)
return 0;
return nullptr;
if (Tok.isNot(tok::raw_identifier))
return 0;
return nullptr;
if (MI->getNumTokens() == 0)
return 0;
return nullptr;
SourceRange DefRange(MI->getReplacementToken(0).getLocation(),
MI->getDefinitionEndLoc());
ASTUnit *Unit = cxtu::getASTUnit(TU);
@ -6829,26 +6830,26 @@ MacroDefinition *cxindex::checkForMacroInMacroDefinition(const MacroInfo *MI,
// Check that the token is inside the definition and not its argument list.
SourceManager &SM = Unit->getSourceManager();
if (SM.isBeforeInTranslationUnit(Tok.getLocation(), DefRange.getBegin()))
return 0;
return nullptr;
if (SM.isBeforeInTranslationUnit(DefRange.getEnd(), Tok.getLocation()))
return 0;
return nullptr;
Preprocessor &PP = Unit->getPreprocessor();
PreprocessingRecord *PPRec = PP.getPreprocessingRecord();
if (!PPRec)
return 0;
return nullptr;
IdentifierInfo &II = PP.getIdentifierTable().get(Tok.getRawIdentifier());
if (!II.hadMacroDefinition())
return 0;
return nullptr;
// Check that the identifier is not one of the macro arguments.
if (std::find(MI->arg_begin(), MI->arg_end(), &II) != MI->arg_end())
return 0;
return nullptr;
MacroDirective *InnerMD = PP.getMacroDirectiveHistory(&II);
if (!InnerMD)
return 0;
return nullptr;
return PPRec->findMacroDefinition(InnerMD->getMacroInfo());
}
@ -6857,18 +6858,18 @@ MacroDefinition *cxindex::checkForMacroInMacroDefinition(const MacroInfo *MI,
SourceLocation Loc,
CXTranslationUnit TU) {
if (Loc.isInvalid() || !MI || !TU)
return 0;
return nullptr;
if (MI->getNumTokens() == 0)
return 0;
return nullptr;
ASTUnit *Unit = cxtu::getASTUnit(TU);
Preprocessor &PP = Unit->getPreprocessor();
if (!PP.getPreprocessingRecord())
return 0;
return nullptr;
Loc = Unit->getSourceManager().getSpellingLoc(Loc);
Token Tok;
if (PP.getRawToken(Loc, Tok))
return 0;
return nullptr;
return checkForMacroInMacroDefinition(MI, Tok, TU);
}
@ -6910,7 +6911,7 @@ Logger &cxindex::Logger::operator<<(CXCursor cursor) {
Logger &cxindex::Logger::operator<<(CXSourceLocation Loc) {
CXFile File;
unsigned Line, Column;
clang_getFileLocation(Loc, &File, &Line, &Column, 0);
clang_getFileLocation(Loc, &File, &Line, &Column, nullptr);
CXString FileName = clang_getFileName(File);
*this << llvm::format("(%s:%d:%d)", clang_getCString(FileName), Line, Column);
clang_disposeString(FileName);
@ -6923,11 +6924,11 @@ Logger &cxindex::Logger::operator<<(CXSourceRange range) {
CXFile BFile;
unsigned BLine, BColumn;
clang_getFileLocation(BLoc, &BFile, &BLine, &BColumn, 0);
clang_getFileLocation(BLoc, &BFile, &BLine, &BColumn, nullptr);
CXFile EFile;
unsigned ELine, EColumn;
clang_getFileLocation(ELoc, &EFile, &ELine, &EColumn, 0);
clang_getFileLocation(ELoc, &EFile, &ELine, &EColumn, nullptr);
CXString BFileName = clang_getFileName(BFile);
if (BFile == EFile) {

View File

@ -89,8 +89,8 @@ CXCursor clang_getSpecializedCursorTemplate(CXCursor C) {
const Decl *D = getCursorDecl(C);
if (!D)
return clang_getNullCursor();
Decl *Template = 0;
Decl *Template = nullptr;
if (const CXXRecordDecl *CXXRecord = dyn_cast<CXXRecordDecl>(D)) {
if (const ClassTemplatePartialSpecializationDecl *PartialSpec
= dyn_cast<ClassTemplatePartialSpecializationDecl>(CXXRecord))

View File

@ -153,7 +153,7 @@ clang_getCompletionChunkCompletionString(CXCompletionString completion_string,
unsigned chunk_number) {
CodeCompletionString *CCStr = (CodeCompletionString *)completion_string;
if (!CCStr || chunk_number >= CCStr->size())
return 0;
return nullptr;
switch ((*CCStr)[chunk_number].Kind) {
case CodeCompletionString::CK_TypedText:
@ -176,7 +176,7 @@ clang_getCompletionChunkCompletionString(CXCompletionString completion_string,
case CodeCompletionString::CK_Equal:
case CodeCompletionString::CK_HorizontalSpace:
case CodeCompletionString::CK_VerticalSpace:
return 0;
return nullptr;
case CodeCompletionString::CK_Optional:
// Note: treated as an empty text block.
@ -568,8 +568,8 @@ namespace {
}
QualType baseType = Context.getBaseType();
NamedDecl *D = NULL;
NamedDecl *D = nullptr;
if (!baseType.isNull()) {
// Get the declaration for a class/struct/union/enum type
if (const TagType *Tag = baseType->getAs<TagType>())
@ -587,8 +587,8 @@ namespace {
baseType->getAs<InjectedClassNameType>())
D = Injected->getDecl();
}
if (D != NULL) {
if (D != nullptr) {
CXCursor cursor = cxcursor::MakeCXCursor(D, *TU);
AllocatedResults.ContainerKind = clang_getCursorKind(cursor);
@ -598,7 +598,7 @@ namespace {
clang_disposeString(CursorUSR);
const Type *type = baseType.getTypePtrOrNull();
if (type != NULL) {
if (type) {
AllocatedResults.ContainerIsIncomplete = type->isIncompleteType();
}
else {
@ -666,7 +666,7 @@ void clang_codeCompleteAt_Impl(void *UserData) {
unsigned num_unsaved_files = CCAI->num_unsaved_files;
unsigned options = CCAI->options;
bool IncludeBriefComments = options & CXCodeComplete_IncludeBriefComments;
CCAI->result = 0;
CCAI->result = nullptr;
#ifdef UDP_CODE_COMPLETION_LOGGER
#ifdef UDP_CODE_COMPLETION_LOGGER_PORT
@ -674,7 +674,7 @@ void clang_codeCompleteAt_Impl(void *UserData) {
#endif
#endif
bool EnableLogging = getenv("LIBCLANG_CODE_COMPLETION_LOGGING") != 0;
bool EnableLogging = getenv("LIBCLANG_CODE_COMPLETION_LOGGING") != nullptr;
if (cxtu::isNotUsableTU(TU)) {
LOG_BAD_TU(TU);
@ -708,7 +708,7 @@ void clang_codeCompleteAt_Impl(void *UserData) {
// Parse the resulting source file to find code-completion results.
AllocatedCXCodeCompleteResults *Results = new AllocatedCXCodeCompleteResults(
&AST->getFileManager());
Results->Results = 0;
Results->Results = nullptr;
Results->NumResults = 0;
// Create a code-completion consumer to capture the results.
@ -825,7 +825,7 @@ CXCodeCompleteResults *clang_codeCompleteAt(CXTranslationUnit TU,
CodeCompleteAtInfo CCAI = { TU, complete_filename, complete_line,
complete_column, unsaved_files, num_unsaved_files,
options, 0 };
options, nullptr };
if (getenv("LIBCLANG_NOTHREADS")) {
clang_codeCompleteAt_Impl(&CCAI);
@ -837,7 +837,7 @@ CXCodeCompleteResults *clang_codeCompleteAt(CXTranslationUnit TU,
if (!RunSafely(CRC, clang_codeCompleteAt_Impl, &CCAI)) {
fprintf(stderr, "libclang: crash detected in code completion\n");
cxtu::getASTUnit(TU)->setUnsafeToFree(true);
return 0;
return nullptr;
} else if (getenv("LIBCLANG_RESOURCE_USAGE"))
PrintLibclangResourceUsage(TU);
@ -873,7 +873,7 @@ clang_codeCompleteGetDiagnostic(CXCodeCompleteResults *ResultsIn,
AllocatedCXCodeCompleteResults *Results
= static_cast<AllocatedCXCodeCompleteResults*>(ResultsIn);
if (!Results || Index >= Results->Diagnostics.size())
return 0;
return nullptr;
CXStoredDiagnostic *Diag = Results->DiagnosticsWrappers[Index];
if (!Diag)
@ -899,8 +899,8 @@ enum CXCursorKind clang_codeCompleteGetContainerKind(
static_cast<AllocatedCXCodeCompleteResults *>(ResultsIn);
if (!Results)
return CXCursor_InvalidCode;
if (IsIncomplete != NULL) {
if (IsIncomplete != nullptr) {
*IsIncomplete = Results->ContainerIsIncomplete;
}

View File

@ -186,7 +186,7 @@ CXDiagnosticSetImpl *cxdiag::lazyCreateDiags(CXTranslationUnit TU,
// Diagnostics in the ASTUnit were updated, reset the associated
// diagnostics.
delete Set;
TU->Diagnostics = 0;
TU->Diagnostics = nullptr;
}
}
@ -223,16 +223,16 @@ unsigned clang_getNumDiagnostics(CXTranslationUnit Unit) {
CXDiagnostic clang_getDiagnostic(CXTranslationUnit Unit, unsigned Index) {
if (cxtu::isNotUsableTU(Unit)) {
LOG_BAD_TU(Unit);
return 0;
return nullptr;
}
CXDiagnosticSet D = clang_getDiagnosticSetFromTU(Unit);
if (!D)
return 0;
return nullptr;
CXDiagnosticSetImpl *Diags = static_cast<CXDiagnosticSetImpl*>(D);
if (Index >= Diags->getNumDiagnostics())
return 0;
return nullptr;
return Diags->getDiagnostic(Index);
}
@ -240,10 +240,10 @@ CXDiagnostic clang_getDiagnostic(CXTranslationUnit Unit, unsigned Index) {
CXDiagnosticSet clang_getDiagnosticSetFromTU(CXTranslationUnit Unit) {
if (cxtu::isNotUsableTU(Unit)) {
LOG_BAD_TU(Unit);
return 0;
return nullptr;
}
if (!cxtu::getASTUnit(Unit))
return 0;
return nullptr;
return static_cast<CXDiagnostic>(lazyCreateDiags(Unit));
}
@ -267,7 +267,7 @@ CXString clang_formatDiagnostic(CXDiagnostic Diagnostic, unsigned Options) {
CXFile File;
unsigned Line, Column;
clang_getSpellingLocation(clang_getDiagnosticLocation(Diagnostic),
&File, &Line, &Column, 0);
&File, &Line, &Column, nullptr);
if (File) {
CXString FName = clang_getFileName(File);
Out << clang_getCString(FName) << ":" << Line << ":";
@ -285,10 +285,10 @@ CXString clang_formatDiagnostic(CXDiagnostic Diagnostic, unsigned Options) {
unsigned StartLine, StartColumn, EndLine, EndColumn;
clang_getSpellingLocation(clang_getRangeStart(Range),
&StartFile, &StartLine, &StartColumn,
0);
nullptr);
clang_getSpellingLocation(clang_getRangeEnd(Range),
&EndFile, &EndLine, &EndColumn, 0);
&EndFile, &EndLine, &EndColumn, nullptr);
if (StartFile != EndFile || StartFile != File)
continue;
@ -326,7 +326,7 @@ CXString clang_formatDiagnostic(CXDiagnostic Diagnostic, unsigned Options) {
bool NeedComma = false;
if (Options & CXDiagnostic_DisplayOption) {
CXString OptionName = clang_getDiagnosticOption(Diagnostic, 0);
CXString OptionName = clang_getDiagnosticOption(Diagnostic, nullptr);
if (const char *OptionText = clang_getCString(OptionName)) {
if (OptionText[0]) {
Out << " [" << OptionText;
@ -464,15 +464,15 @@ CXDiagnostic clang_getDiagnosticInSet(CXDiagnosticSet Diags,
if (CXDiagnosticSetImpl *D = static_cast<CXDiagnosticSetImpl*>(Diags))
if (Index < D->getNumDiagnostics())
return D->getDiagnostic(Index);
return 0;
return nullptr;
}
CXDiagnosticSet clang_getChildDiagnostics(CXDiagnostic Diag) {
if (CXDiagnosticImpl *D = static_cast<CXDiagnosticImpl *>(Diag)) {
CXDiagnosticSetImpl &ChildDiags = D->getChildDiagnostics();
return ChildDiags.empty() ? 0 : (CXDiagnosticSet) &ChildDiags;
return ChildDiags.empty() ? nullptr : (CXDiagnosticSet) &ChildDiags;
}
return 0;
return nullptr;
}
unsigned clang_getNumDiagnosticsInSet(CXDiagnosticSet Diags) {

View File

@ -78,7 +78,7 @@ struct FindFileIdRefVisitData {
/// itself, so both 'C' can be highlighted.
const Decl *getCanonical(const Decl *D) const {
if (!D)
return 0;
return nullptr;
D = D->getCanonicalDecl();
@ -265,7 +265,7 @@ struct FindFileMacroRefVisitData {
static enum CXChildVisitResult findFileMacroRefVisit(CXCursor cursor,
CXCursor parent,
CXClientData client_data) {
const IdentifierInfo *Macro = 0;
const IdentifierInfo *Macro = nullptr;
if (cursor.kind == CXCursor_MacroDefinition)
Macro = getCursorMacroDefinition(cursor)->getName();
else if (cursor.kind == CXCursor_MacroExpansion)
@ -317,7 +317,7 @@ static bool findMacroRefsInFile(CXTranslationUnit TU, CXCursor Cursor,
SourceManager &SM = Unit->getSourceManager();
FileID FID = SM.translateFile(File);
const IdentifierInfo *Macro = 0;
const IdentifierInfo *Macro = nullptr;
if (Cursor.kind == CXCursor_MacroDefinition)
Macro = getCursorMacroDefinition(Cursor)->getName();
else
@ -522,7 +522,7 @@ CXResult clang_findReferencesInFileWithBlock(CXCursor cursor,
CXFile file,
CXCursorAndRangeVisitorBlock block) {
CXCursorAndRangeVisitor visitor = { block,
block ? _visitCursorAndRange : 0 };
block ? _visitCursorAndRange : nullptr };
return clang_findReferencesInFile(cursor, file, visitor);
}
@ -530,7 +530,7 @@ CXResult clang_findIncludesInFileWithBlock(CXTranslationUnit TU,
CXFile file,
CXCursorAndRangeVisitorBlock block) {
CXCursorAndRangeVisitor visitor = { block,
block ? _visitCursorAndRange : 0 };
block ? _visitCursorAndRange : nullptr };
return clang_findIncludesInFile(TU, file, visitor);
}

View File

@ -48,7 +48,7 @@ public:
static const char *sCachedVar = ::getenv("LIBCLANG_LOGGING");
return sCachedVar;
}
static bool isLoggingEnabled() { return getEnvVar() != 0; }
static bool isLoggingEnabled() { return getEnvVar() != nullptr; }
static bool isStackTracingEnabled() {
if (const char *EnvOpt = Logger::getEnvVar())
return llvm::StringRef(EnvOpt) == "2";
@ -58,7 +58,7 @@ public:
bool trace = isStackTracingEnabled()) {
if (isLoggingEnabled())
return new Logger(name, trace);
return 0;
return nullptr;
}
explicit Logger(llvm::StringRef name, bool trace)

View File

@ -33,11 +33,11 @@ CXComment clang_Cursor_getParsedComment(CXCursor C) {
using namespace clang::cxcursor;
if (!clang_isDeclaration(C.kind))
return createCXComment(NULL, NULL);
return createCXComment(nullptr, nullptr);
const Decl *D = getCursorDecl(C);
const ASTContext &Context = getCursorContext(C);
const FullComment *FC = Context.getCommentForDecl(D, /*PP=*/NULL);
const FullComment *FC = Context.getCommentForDecl(D, /*PP=*/nullptr);
return createCXComment(FC, getCursorTU(C));
}
@ -101,7 +101,7 @@ unsigned clang_Comment_getNumChildren(CXComment CXC) {
CXComment clang_Comment_getChild(CXComment CXC, unsigned ChildIdx) {
const Comment *C = getASTNode(CXC);
if (!C || ChildIdx >= C->child_count())
return createCXComment(NULL, NULL);
return createCXComment(nullptr, nullptr);
return createCXComment(*(C->child_begin() + ChildIdx), CXC.TranslationUnit);
}
@ -253,7 +253,7 @@ CXString clang_BlockCommandComment_getArgText(CXComment CXC,
CXComment clang_BlockCommandComment_getParagraph(CXComment CXC) {
const BlockCommandComment *BCC = getASTNodeAs<BlockCommandComment>(CXC);
if (!BCC)
return createCXComment(NULL, NULL);
return createCXComment(nullptr, nullptr);
return createCXComment(BCC->getParagraph(), CXC.TranslationUnit);
}

View File

@ -44,7 +44,7 @@ template<typename T>
static inline const T *getASTNodeAs(CXComment CXC) {
const comments::Comment *C = getASTNode(CXC);
if (!C)
return NULL;
return nullptr;
return dyn_cast<T>(C);
}

View File

@ -54,7 +54,7 @@ clang_CompilationDatabase_getCompileCommands(CXCompilationDatabase CDb,
return new AllocatedCXCompileCommands(std::move(CCmd));
}
return 0;
return nullptr;
}
CXCompileCommands
@ -65,7 +65,7 @@ clang_CompilationDatabase_getAllCompileCommands(CXCompilationDatabase CDb) {
return new AllocatedCXCompileCommands(std::move(CCmd));
}
return 0;
return nullptr;
}
void
@ -90,13 +90,13 @@ CXCompileCommand
clang_CompileCommands_getCommand(CXCompileCommands Cmds, unsigned I)
{
if (!Cmds)
return 0;
return nullptr;
AllocatedCXCompileCommands *ACC =
static_cast<AllocatedCXCompileCommands *>(Cmds);
if (I >= ACC->CCmd.size())
return 0;
return nullptr;
return &ACC->CCmd[I];
}

View File

@ -34,7 +34,7 @@ using namespace cxcursor;
CXCursor cxcursor::MakeCXCursorInvalid(CXCursorKind K, CXTranslationUnit TU) {
assert(K >= CXCursor_FirstInvalid && K <= CXCursor_LastInvalid);
CXCursor C = { K, 0, { 0, 0, TU } };
CXCursor C = { K, 0, { nullptr, nullptr, TU } };
return C;
}
@ -659,7 +659,7 @@ cxcursor::getCursorMemberRef(CXCursor C) {
CXCursor cxcursor::MakeCursorCXXBaseSpecifier(const CXXBaseSpecifier *B,
CXTranslationUnit TU){
CXCursor C = { CXCursor_CXXBaseSpecifier, 0, { B, 0, TU } };
CXCursor C = { CXCursor_CXXBaseSpecifier, 0, { B, nullptr, TU } };
return C;
}
@ -688,7 +688,7 @@ SourceRange cxcursor::getCursorPreprocessingDirective(CXCursor C) {
CXCursor cxcursor::MakeMacroDefinitionCursor(const MacroDefinition *MI,
CXTranslationUnit TU) {
CXCursor C = { CXCursor_MacroDefinition, 0, { MI, 0, TU } };
CXCursor C = { CXCursor_MacroDefinition, 0, { MI, nullptr, TU } };
return C;
}
@ -699,7 +699,7 @@ const MacroDefinition *cxcursor::getCursorMacroDefinition(CXCursor C) {
CXCursor cxcursor::MakeMacroExpansionCursor(MacroExpansion *MI,
CXTranslationUnit TU) {
CXCursor C = { CXCursor_MacroExpansion, 0, { MI, 0, TU } };
CXCursor C = { CXCursor_MacroExpansion, 0, { MI, nullptr, TU } };
return C;
}
@ -729,7 +729,7 @@ SourceRange cxcursor::MacroExpansionCursor::getSourceRange() const {
CXCursor cxcursor::MakeInclusionDirectiveCursor(InclusionDirective *ID,
CXTranslationUnit TU) {
CXCursor C = { CXCursor_InclusionDirective, 0, { ID, 0, TU } };
CXCursor C = { CXCursor_InclusionDirective, 0, { ID, nullptr, TU } };
return C;
}
@ -812,7 +812,7 @@ const Stmt *cxcursor::getCursorStmt(CXCursor Cursor) {
if (Cursor.kind == CXCursor_ObjCSuperClassRef ||
Cursor.kind == CXCursor_ObjCProtocolRef ||
Cursor.kind == CXCursor_ObjCClassRef)
return 0;
return nullptr;
return static_cast<const Stmt *>(Cursor.data[1]);
}
@ -832,7 +832,7 @@ ASTContext &cxcursor::getCursorContext(CXCursor Cursor) {
ASTUnit *cxcursor::getCursorASTUnit(CXCursor Cursor) {
CXTranslationUnit TU = getCursorTU(Cursor);
if (!TU)
return 0;
return nullptr;
return cxtu::getASTUnit(TU);
}
@ -906,7 +906,7 @@ CXCursor cxcursor::getTypeRefCursor(CXCursor cursor) {
return cursor;
const Expr *E = getCursorExpr(cursor);
TypeSourceInfo *Type = 0;
TypeSourceInfo *Type = nullptr;
if (const CXXUnresolvedConstructExpr *
UnCtor = dyn_cast<CXXUnresolvedConstructExpr>(E)) {
Type = UnCtor->getTypeSourceInfo();
@ -1107,7 +1107,7 @@ CXCompletionString clang_getCursorCompletionString(CXCursor cursor) {
false);
return String;
}
return NULL;
return nullptr;
}
} // end: extern C.
@ -1139,7 +1139,7 @@ void clang_getOverriddenCursors(CXCursor cursor,
CXCursor **overridden,
unsigned *num_overridden) {
if (overridden)
*overridden = 0;
*overridden = nullptr;
if (num_overridden)
*num_overridden = 0;
@ -1153,9 +1153,9 @@ void clang_getOverriddenCursors(CXCursor cursor,
OverridenCursorsPool &pool =
*static_cast<OverridenCursorsPool*>(TU->OverridenCursorsPool);
OverridenCursorsPool::CursorVec *Vec = 0;
OverridenCursorsPool::CursorVec *Vec = nullptr;
if (!pool.AvailableCursors.empty()) {
Vec = pool.AvailableCursors.back();
pool.AvailableCursors.pop_back();
@ -1213,7 +1213,7 @@ void clang_disposeOverriddenCursors(CXCursor *overridden) {
}
int clang_Cursor_isDynamicCall(CXCursor C) {
const Expr *E = 0;
const Expr *E = nullptr;
if (clang_isExpression(C.kind))
E = getCursorExpr(C);
if (!E)
@ -1222,7 +1222,7 @@ int clang_Cursor_isDynamicCall(CXCursor C) {
if (const ObjCMessageExpr *MsgE = dyn_cast<ObjCMessageExpr>(E))
return MsgE->getReceiverKind() == ObjCMessageExpr::Instance;
const MemberExpr *ME = 0;
const MemberExpr *ME = nullptr;
if (isa<MemberExpr>(E))
ME = cast<MemberExpr>(E);
else if (const CallExpr *CE = dyn_cast<CallExpr>(E))
@ -1239,7 +1239,7 @@ int clang_Cursor_isDynamicCall(CXCursor C) {
CXType clang_Cursor_getReceiverType(CXCursor C) {
CXTranslationUnit TU = cxcursor::getCursorTU(C);
const Expr *E = 0;
const Expr *E = nullptr;
if (clang_isExpression(C.kind))
E = getCursorExpr(C);

View File

@ -56,7 +56,7 @@ CXCursor MakeCXCursor(const clang::Decl *D, CXTranslationUnit TU,
CXCursor MakeCXCursor(const clang::Stmt *S, const clang::Decl *Parent,
CXTranslationUnit TU,
SourceRange RegionOfInterest = SourceRange());
CXCursor MakeCXCursorInvalid(CXCursorKind K, CXTranslationUnit TU = 0);
CXCursor MakeCXCursorInvalid(CXCursorKind K, CXTranslationUnit TU = nullptr);
/// \brief Create an Objective-C superclass reference at the given location.
CXCursor MakeCursorObjCSuperClassRef(ObjCInterfaceDecl *Super,
@ -172,7 +172,7 @@ class MacroExpansionCursor {
CXCursor C;
bool isPseudo() const {
return C.data[1] != 0;
return C.data[1] != nullptr;
}
const MacroDefinition *getAsMacroDefinition() const {
assert(isPseudo());

View File

@ -92,7 +92,7 @@ static CXSourceLocation makeLocation(const CXLoadedDiagnostic::Location *DLoc) {
// is a persistent diagnostic.
uintptr_t V = (uintptr_t) DLoc;
V |= 0x1;
CXSourceLocation Loc = { { (void*) V, 0 }, 0 };
CXSourceLocation Loc = { { (void*) V, nullptr }, 0 };
return Loc;
}
@ -265,7 +265,7 @@ CXDiagnosticSet DiagLoader::load(const char *file) {
if (!Buffer) {
reportBad(CXLoadDiag_CannotLoad, ErrStr);
return 0;
return nullptr;
}
llvm::BitstreamReader StreamFile;
@ -282,7 +282,7 @@ CXDiagnosticSet DiagLoader::load(const char *file) {
Stream.Read(8) != 'G') {
reportBad(CXLoadDiag_InvalidFile,
"Bad header in diagnostics file");
return 0;
return nullptr;
}
std::unique_ptr<CXLoadedDiagnosticSetImpl> Diags(
@ -296,7 +296,7 @@ CXDiagnosticSet DiagLoader::load(const char *file) {
case Read_EndOfStream:
return (CXDiagnosticSet)Diags.release();
case Read_Failure:
return 0;
return nullptr;
case Read_Record:
llvm_unreachable("Top-level does not have records");
case Read_BlockEnd:
@ -308,16 +308,16 @@ CXDiagnosticSet DiagLoader::load(const char *file) {
switch (BlockID) {
case serialized_diags::BLOCK_META:
if (readMetaBlock(Stream))
return 0;
return nullptr;
break;
case serialized_diags::BLOCK_DIAG:
if (readDiagnosticBlock(Stream, *Diags.get(), *Diags.get()))
return 0;
return nullptr;
break;
default:
if (!Stream.SkipBlock()) {
reportInvalidFile("Malformed block at top-level of diagnostics file");
return 0;
return nullptr;
}
break;
}
@ -495,7 +495,7 @@ LoadResult DiagLoader::readLocation(CXLoadedDiagnosticSetImpl &TopDiags,
unsigned fileID = Record[offset++];
if (fileID == 0) {
// Sentinel value.
Loc.file = 0;
Loc.file = nullptr;
Loc.line = 0;
Loc.column = 0;
Loc.offset = 0;

View File

@ -41,7 +41,7 @@ static bool isASTUnitSourceLocation(const CXSourceLocation &L) {
extern "C" {
CXSourceLocation clang_getNullLocation() {
CXSourceLocation Result = { { 0, 0 }, 0 };
CXSourceLocation Result = { { nullptr, nullptr }, 0 };
return Result;
}
@ -52,7 +52,7 @@ unsigned clang_equalLocations(CXSourceLocation loc1, CXSourceLocation loc2) {
}
CXSourceRange clang_getNullRange() {
CXSourceRange Result = { { 0, 0 }, 0, 0 };
CXSourceRange Result = { { nullptr, nullptr }, 0, 0 };
return Result;
}
@ -89,7 +89,7 @@ int clang_Range_isNull(CXSourceRange range) {
CXSourceLocation clang_getRangeStart(CXSourceRange range) {
// Special decoding for CXSourceLocations for CXLoadedDiagnostics.
if ((uintptr_t)range.ptr_data[0] & 0x1) {
CXSourceLocation Result = { { range.ptr_data[0], 0 }, 0 };
CXSourceLocation Result = { { range.ptr_data[0], nullptr }, 0 };
return Result;
}
@ -101,7 +101,7 @@ CXSourceLocation clang_getRangeStart(CXSourceRange range) {
CXSourceLocation clang_getRangeEnd(CXSourceRange range) {
// Special decoding for CXSourceLocations for CXLoadedDiagnostics.
if ((uintptr_t)range.ptr_data[0] & 0x1) {
CXSourceLocation Result = { { range.ptr_data[1], 0 }, 0 };
CXSourceLocation Result = { { range.ptr_data[1], nullptr }, 0 };
return Result;
}
@ -183,7 +183,7 @@ CXSourceLocation clang_getLocationForOffset(CXTranslationUnit TU,
static void createNullLocation(CXFile *file, unsigned *line,
unsigned *column, unsigned *offset) {
if (file)
*file = 0;
*file = nullptr;
if (line)
*line = 0;
if (column)
@ -194,7 +194,7 @@ static void createNullLocation(CXFile *file, unsigned *line,
}
static void createNullLocation(CXString *filename, unsigned *line,
unsigned *column, unsigned *offset = 0) {
unsigned *column, unsigned *offset = nullptr) {
if (filename)
*filename = cxstring::createEmpty();
if (line)

View File

@ -51,7 +51,7 @@ CXString createEmpty() {
CXString createNull() {
CXString Str;
Str.data = 0;
Str.data = nullptr;
Str.private_flags = CXS_Unmanaged;
return Str;
}

View File

@ -42,7 +42,7 @@ CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *AU);
static inline ASTUnit *getASTUnit(CXTranslationUnit TU) {
if (!TU)
return 0;
return nullptr;
return TU->TheASTUnit;
}
@ -72,7 +72,7 @@ public:
CXTranslationUnitImpl *takeTU() {
CXTranslationUnitImpl *retTU = TU;
TU = 0;
TU = nullptr;
return retTU;
}
};

View File

@ -120,7 +120,8 @@ CXType cxtype::MakeCXType(QualType T, CXTranslationUnit TU) {
if (TK == CXType_Invalid)
TK = GetTypeKind(T);
CXType CT = { TK, { TK == CXType_Invalid ? 0 : T.getAsOpaquePtr(), TU }};
CXType CT = { TK, { TK == CXType_Invalid ? nullptr
: T.getAsOpaquePtr(), TU } };
return CT;
}
@ -386,7 +387,7 @@ CXCursor clang_getTypeDeclaration(CXType CT) {
if (!TP)
return cxcursor::MakeCXCursorInvalid(CXCursor_NoDeclFound);
Decl *D = 0;
Decl *D = nullptr;
try_again:
switch (TP->getTypeClass()) {
@ -432,7 +433,7 @@ try_again:
}
CXString clang_getTypeKindSpelling(enum CXTypeKind K) {
const char *s = 0;
const char *s = nullptr;
#define TKIND(X) case CXType_##X: s = "" #X ""; break
switch (K) {
TKIND(Invalid);
@ -854,7 +855,7 @@ CXString clang_getDeclObjCTypeEncoding(CXCursor C) {
if (Ctx.getObjCEncodingForMethodDecl(OMD, encoding))
return cxstring::createRef("?");
} else if (const ObjCPropertyDecl *OPD = dyn_cast<ObjCPropertyDecl>(D))
Ctx.getObjCEncodingForPropertyDecl(OPD, NULL, encoding);
Ctx.getObjCEncodingForPropertyDecl(OPD, nullptr, encoding);
else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
Ctx.getObjCEncodingForFunctionDecl(FD, encoding);
else {

View File

@ -36,8 +36,8 @@ protected:
const void *data[3];
CXCursor parent;
Kind K;
VisitorJob(CXCursor C, Kind k, const void *d1, const void *d2 = 0,
const void *d3 = 0)
VisitorJob(CXCursor C, Kind k, const void *d1, const void *d2 = nullptr,
const void *d3 = nullptr)
: parent(C), K(k) {
data[0] = d1;
data[1] = d2;
@ -147,7 +147,7 @@ public:
bool VisitIncludedPreprocessingEntries = false,
SourceRange RegionOfInterest = SourceRange(),
bool VisitDeclsOnly = false,
PostChildrenVisitorTy PostChildrenVisitor = 0)
PostChildrenVisitorTy PostChildrenVisitor = nullptr)
: TU(TU), AU(cxtu::getASTUnit(TU)),
Visitor(Visitor), PostChildrenVisitor(PostChildrenVisitor),
ClientData(ClientData),
@ -155,13 +155,13 @@ public:
VisitIncludedEntities(VisitIncludedPreprocessingEntries),
RegionOfInterest(RegionOfInterest),
VisitDeclsOnly(VisitDeclsOnly),
DI_current(0), FileDI_current(0)
DI_current(nullptr), FileDI_current(nullptr)
{
Parent.kind = CXCursor_NoDeclFound;
Parent.data[0] = 0;
Parent.data[1] = 0;
Parent.data[2] = 0;
StmtParent = 0;
Parent.data[0] = nullptr;
Parent.data[1] = nullptr;
Parent.data[2] = nullptr;
StmtParent = nullptr;
}
~CursorVisitor() {

View File

@ -170,7 +170,7 @@ void IndexingContext::indexBody(const Stmt *S, const NamedDecl *Parent,
if (!S)
return;
if (DC == 0)
if (!DC)
DC = Parent->getLexicalDeclContext();
BodyIndexer(*this, Parent, DC).TraverseStmt(const_cast<Stmt*>(S));
}

View File

@ -31,7 +31,8 @@ public:
return MD && !MD->isImplicit() && MD->isThisDeclarationADefinition();
}
void handleDeclarator(const DeclaratorDecl *D, const NamedDecl *Parent = 0) {
void handleDeclarator(const DeclaratorDecl *D,
const NamedDecl *Parent = nullptr) {
if (!Parent) Parent = D;
if (!IndexCtx.shouldIndexFunctionLocalSymbols()) {
@ -227,7 +228,7 @@ public:
if (ObjCIvarDecl *IvarD = D->getPropertyIvarDecl()) {
if (!IvarD->getSynthesize())
IndexCtx.handleReference(IvarD, D->getPropertyIvarDeclLoc(), 0,
IndexCtx.handleReference(IvarD, D->getPropertyIvarDeclLoc(), nullptr,
D->getDeclContext());
}

View File

@ -108,7 +108,7 @@ void IndexingContext::indexTypeLoc(TypeLoc TL,
if (TL.isNull())
return;
if (DC == 0)
if (!DC)
DC = Parent->getLexicalDeclContext();
TypeIndexer(*this, Parent, DC).TraverseTypeLoc(TL);
}
@ -122,7 +122,7 @@ void IndexingContext::indexNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS,
if (NestedNameSpecifierLoc Prefix = NNS.getPrefix())
indexNestedNameSpecifierLoc(Prefix, Parent, DC);
if (DC == 0)
if (!DC)
DC = Parent->getLexicalDeclContext();
SourceLocation Loc = NNS.getSourceRange().getBegin();

View File

@ -511,8 +511,8 @@ static void clang_indexSourceFile_Impl(void *UserData) {
ITUI->result = CXError_Failure;
if (out_TU)
*out_TU = 0;
bool requestedToGetTU = (out_TU != 0);
*out_TU = nullptr;
bool requestedToGetTU = (out_TU != nullptr);
if (!cxIdxAction) {
ITUI->result = CXError_InvalidArguments;
@ -537,7 +537,7 @@ static void clang_indexSourceFile_Impl(void *UserData) {
bool CaptureDiagnostics = !Logger::isLoggingEnabled();
CaptureDiagnosticConsumer *CaptureDiag = 0;
CaptureDiagnosticConsumer *CaptureDiag = nullptr;
if (CaptureDiagnostics)
CaptureDiag = new CaptureDiagnosticConsumer();
@ -632,7 +632,7 @@ static void clang_indexSourceFile_Impl(void *UserData) {
std::unique_ptr<IndexingFrontendAction> IndexAction;
IndexAction.reset(new IndexingFrontendAction(client_data, CB,
index_options, CXTU->getTU(),
SkipBodies ? IdxSession->SkipBodyData.get() : 0));
SkipBodies ? IdxSession->SkipBodyData.get() : nullptr));
// Recover resources if we crash before exiting this method.
llvm::CrashRecoveryContextCleanupRegistrar<IndexingFrontendAction>
@ -796,7 +796,7 @@ static void clang_indexTranslationUnit_Impl(void *UserData) {
IndexCtxCleanup(IndexCtx.get());
std::unique_ptr<IndexingConsumer> IndexConsumer;
IndexConsumer.reset(new IndexingConsumer(*IndexCtx, 0));
IndexConsumer.reset(new IndexingConsumer(*IndexCtx, nullptr));
// Recover resources if we crash before exiting this method.
llvm::CrashRecoveryContextCleanupRegistrar<IndexingConsumer>
@ -814,7 +814,7 @@ static void clang_indexTranslationUnit_Impl(void *UserData) {
FileManager &FileMgr = Unit->getFileManager();
if (Unit->getOriginalSourceFileName().empty())
IndexCtx->enteredMainFile(0);
IndexCtx->enteredMainFile(nullptr);
else
IndexCtx->enteredMainFile(FileMgr.getFile(Unit->getOriginalSourceFileName()));
@ -840,46 +840,46 @@ int clang_index_isEntityObjCContainerKind(CXIdxEntityKind K) {
const CXIdxObjCContainerDeclInfo *
clang_index_getObjCContainerDeclInfo(const CXIdxDeclInfo *DInfo) {
if (!DInfo)
return 0;
return nullptr;
const DeclInfo *DI = static_cast<const DeclInfo *>(DInfo);
if (const ObjCContainerDeclInfo *
ContInfo = dyn_cast<ObjCContainerDeclInfo>(DI))
return &ContInfo->ObjCContDeclInfo;
return 0;
return nullptr;
}
const CXIdxObjCInterfaceDeclInfo *
clang_index_getObjCInterfaceDeclInfo(const CXIdxDeclInfo *DInfo) {
if (!DInfo)
return 0;
return nullptr;
const DeclInfo *DI = static_cast<const DeclInfo *>(DInfo);
if (const ObjCInterfaceDeclInfo *
InterInfo = dyn_cast<ObjCInterfaceDeclInfo>(DI))
return &InterInfo->ObjCInterDeclInfo;
return 0;
return nullptr;
}
const CXIdxObjCCategoryDeclInfo *
clang_index_getObjCCategoryDeclInfo(const CXIdxDeclInfo *DInfo){
if (!DInfo)
return 0;
return nullptr;
const DeclInfo *DI = static_cast<const DeclInfo *>(DInfo);
if (const ObjCCategoryDeclInfo *
CatInfo = dyn_cast<ObjCCategoryDeclInfo>(DI))
return &CatInfo->ObjCCatDeclInfo;
return 0;
return nullptr;
}
const CXIdxObjCProtocolRefListInfo *
clang_index_getObjCProtocolRefListInfo(const CXIdxDeclInfo *DInfo) {
if (!DInfo)
return 0;
return nullptr;
const DeclInfo *DI = static_cast<const DeclInfo *>(DInfo);
@ -894,50 +894,50 @@ clang_index_getObjCProtocolRefListInfo(const CXIdxDeclInfo *DInfo) {
if (const ObjCCategoryDeclInfo *CatInfo = dyn_cast<ObjCCategoryDeclInfo>(DI))
return CatInfo->ObjCCatDeclInfo.protocols;
return 0;
return nullptr;
}
const CXIdxObjCPropertyDeclInfo *
clang_index_getObjCPropertyDeclInfo(const CXIdxDeclInfo *DInfo) {
if (!DInfo)
return 0;
return nullptr;
const DeclInfo *DI = static_cast<const DeclInfo *>(DInfo);
if (const ObjCPropertyDeclInfo *PropInfo = dyn_cast<ObjCPropertyDeclInfo>(DI))
return &PropInfo->ObjCPropDeclInfo;
return 0;
return nullptr;
}
const CXIdxIBOutletCollectionAttrInfo *
clang_index_getIBOutletCollectionAttrInfo(const CXIdxAttrInfo *AInfo) {
if (!AInfo)
return 0;
return nullptr;
const AttrInfo *DI = static_cast<const AttrInfo *>(AInfo);
if (const IBOutletCollectionInfo *
IBInfo = dyn_cast<IBOutletCollectionInfo>(DI))
return &IBInfo->IBCollInfo;
return 0;
return nullptr;
}
const CXIdxCXXClassDeclInfo *
clang_index_getCXXClassDeclInfo(const CXIdxDeclInfo *DInfo) {
if (!DInfo)
return 0;
return nullptr;
const DeclInfo *DI = static_cast<const DeclInfo *>(DInfo);
if (const CXXClassDeclInfo *ClassInfo = dyn_cast<CXXClassDeclInfo>(DI))
return &ClassInfo->CXXClassInfo;
return 0;
return nullptr;
}
CXIdxClientContainer
clang_index_getClientContainer(const CXIdxContainerInfo *info) {
if (!info)
return 0;
return nullptr;
const ContainerInfo *Container = static_cast<const ContainerInfo *>(info);
return Container->IndexCtx->getClientContainerForDC(Container->DC);
}
@ -952,7 +952,7 @@ void clang_index_setClientContainer(const CXIdxContainerInfo *info,
CXIdxClientEntity clang_index_getClientEntity(const CXIdxEntityInfo *info) {
if (!info)
return 0;
return nullptr;
const EntityInfo *Entity = static_cast<const EntityInfo *>(info);
return Entity->IndexCtx->getClientEntity(Entity->Dcl);
}
@ -1072,8 +1072,8 @@ void clang_indexLoc_getFileLocation(CXIdxLoc location,
unsigned *line,
unsigned *column,
unsigned *offset) {
if (indexFile) *indexFile = 0;
if (file) *file = 0;
if (indexFile) *indexFile = nullptr;
if (file) *file = nullptr;
if (line) *line = 0;
if (column) *column = 0;
if (offset) *offset = 0;

View File

@ -30,7 +30,7 @@ IndexingContext::ObjCProtocolListInfo::ObjCProtocolListInfo(
ObjCProtocolDecl *PD = *I;
ProtEntities.push_back(EntityInfo());
IdxCtx.getEntityInfo(PD, ProtEntities.back(), SA);
CXIdxObjCProtocolRefInfo ProtInfo = { 0,
CXIdxObjCProtocolRefInfo ProtInfo = { nullptr,
MakeCursorObjCProtocolRef(PD, Loc, IdxCtx.CXTU),
IdxCtx.getIndexLoc(Loc) };
ProtInfos.push_back(ProtInfo);
@ -58,7 +58,7 @@ IBOutletCollectionInfo::IBOutletCollectionInfo(
ClassInfo = other.ClassInfo;
IBCollInfo.objcClass = &ClassInfo;
} else
IBCollInfo.objcClass = 0;
IBCollInfo.objcClass = nullptr;
}
AttrListInfo::AttrListInfo(const Decl *D, IndexingContext &IdxCtx)
@ -96,7 +96,7 @@ AttrListInfo::AttrListInfo(const Decl *D, IndexingContext &IdxCtx)
IBAttr->getInterfaceLoc()->getTypeLoc().getLocStart();
IBInfo.IBCollInfo.attrInfo = &IBInfo;
IBInfo.IBCollInfo.classLoc = IdxCtx.getIndexLoc(InterfaceLocStart);
IBInfo.IBCollInfo.objcClass = 0;
IBInfo.IBCollInfo.objcClass = nullptr;
IBInfo.IBCollInfo.classCursor = clang_getNullCursor();
QualType Ty = IBAttr->getInterface();
if (const ObjCObjectType *ObjectTy = Ty->getAs<ObjCObjectType>()) {
@ -125,7 +125,7 @@ IndexingContext::CXXBasesListInfo::CXXBasesListInfo(const CXXRecordDecl *D,
ScratchAlloc &SA) {
for (const auto &Base : D->bases()) {
BaseEntities.push_back(EntityInfo());
const NamedDecl *BaseD = 0;
const NamedDecl *BaseD = nullptr;
QualType T = Base.getType();
SourceLocation Loc = getBaseLoc(Base);
@ -140,7 +140,7 @@ IndexingContext::CXXBasesListInfo::CXXBasesListInfo(const CXXRecordDecl *D,
if (BaseD)
IdxCtx.getEntityInfo(BaseD, BaseEntities.back(), SA);
CXIdxBaseClassInfo BaseInfo = { 0,
CXIdxBaseClassInfo BaseInfo = { nullptr,
MakeCursorCXXBaseSpecifier(&Base, IdxCtx.CXTU),
IdxCtx.getIndexLoc(Loc) };
BaseInfos.push_back(BaseInfo);
@ -227,14 +227,15 @@ bool IndexingContext::isFunctionLocalDecl(const Decl *D) {
bool IndexingContext::shouldAbort() {
if (!CB.abortQuery)
return false;
return CB.abortQuery(ClientData, 0);
return CB.abortQuery(ClientData, nullptr);
}
void IndexingContext::enteredMainFile(const FileEntry *File) {
if (File && CB.enteredMainFile) {
CXIdxClientFile idxFile =
CB.enteredMainFile(ClientData,
static_cast<CXFile>(const_cast<FileEntry *>(File)), 0);
static_cast<CXFile>(const_cast<FileEntry *>(File)),
nullptr);
FileMap[File] = idxFile;
}
}
@ -283,7 +284,7 @@ void IndexingContext::importedPCH(const FileEntry *File) {
CXIdxImportedASTFileInfo Info = {
static_cast<CXFile>(
const_cast<FileEntry *>(File)),
/*module=*/NULL,
/*module=*/nullptr,
getIndexLoc(SourceLocation()),
/*isImplicit=*/false
};
@ -292,9 +293,9 @@ void IndexingContext::importedPCH(const FileEntry *File) {
}
void IndexingContext::startedTranslationUnit() {
CXIdxClientContainer idxCont = 0;
CXIdxClientContainer idxCont = nullptr;
if (CB.startedTranslationUnit)
idxCont = CB.startedTranslationUnit(ClientData, 0);
idxCont = CB.startedTranslationUnit(ClientData, nullptr);
addContainerInMap(Ctx->getTranslationUnitDecl(), idxCont);
}
@ -302,7 +303,7 @@ void IndexingContext::handleDiagnosticSet(CXDiagnostic CXDiagSet) {
if (!CB.diagnostic)
return;
CB.diagnostic(ClientData, CXDiagSet, 0);
CB.diagnostic(ClientData, CXDiagSet, nullptr);
}
bool IndexingContext::handleDecl(const NamedDecl *D,
@ -464,7 +465,8 @@ bool IndexingContext::handleObjCInterface(const ObjCInterfaceDecl *D) {
ObjCInterfaceDeclInfo InterInfo(D);
InterInfo.ObjCProtoListInfo = ProtInfo.getListInfo();
InterInfo.ObjCInterDeclInfo.containerInfo = &InterInfo.ObjCContDeclInfo;
InterInfo.ObjCInterDeclInfo.superInfo = D->getSuperClass() ? &BaseClass : 0;
InterInfo.ObjCInterDeclInfo.superInfo = D->getSuperClass() ? &BaseClass
: nullptr;
InterInfo.ObjCInterDeclInfo.protocols = &InterInfo.ObjCProtoListInfo;
return handleObjCContainer(D, D->getLocation(), getCursor(D), InterInfo);
@ -529,7 +531,7 @@ bool IndexingContext::handleObjCCategory(const ObjCCategoryDecl *D) {
CatDInfo.ObjCCatDeclInfo.classCursor =
MakeCursorObjCClassRef(IFaceD, ClassLoc, CXTU);
} else {
CatDInfo.ObjCCatDeclInfo.objcClass = 0;
CatDInfo.ObjCCatDeclInfo.objcClass = nullptr;
CatDInfo.ObjCCatDeclInfo.classCursor = clang_getNullCursor();
}
CatDInfo.ObjCCatDeclInfo.classLoc = getIndexLoc(ClassLoc);
@ -559,11 +561,11 @@ bool IndexingContext::handleObjCCategoryImpl(const ObjCCategoryImplDecl *D) {
CatDInfo.ObjCCatDeclInfo.classCursor =
MakeCursorObjCClassRef(IFaceD, ClassLoc, CXTU);
} else {
CatDInfo.ObjCCatDeclInfo.objcClass = 0;
CatDInfo.ObjCCatDeclInfo.objcClass = nullptr;
CatDInfo.ObjCCatDeclInfo.classCursor = clang_getNullCursor();
}
CatDInfo.ObjCCatDeclInfo.classLoc = getIndexLoc(ClassLoc);
CatDInfo.ObjCCatDeclInfo.protocols = 0;
CatDInfo.ObjCCatDeclInfo.protocols = nullptr;
return handleObjCContainer(D, CategoryLoc, getCursor(D), CatDInfo);
}
@ -587,7 +589,8 @@ bool IndexingContext::handleObjCMethod(const ObjCMethodDecl *D) {
bool IndexingContext::handleSynthesizedObjCProperty(
const ObjCPropertyImplDecl *D) {
ObjCPropertyDecl *PD = D->getPropertyDecl();
return handleReference(PD, D->getLocation(), getCursor(D), 0, D->getDeclContext());
return handleReference(PD, D->getLocation(), getCursor(D), nullptr,
D->getDeclContext());
}
bool IndexingContext::handleSynthesizedObjCMethod(const ObjCMethodDecl *D,
@ -611,13 +614,13 @@ bool IndexingContext::handleObjCProperty(const ObjCPropertyDecl *D) {
getEntityInfo(Getter, GetterEntity, SA);
DInfo.ObjCPropDeclInfo.getter = &GetterEntity;
} else {
DInfo.ObjCPropDeclInfo.getter = 0;
DInfo.ObjCPropDeclInfo.getter = nullptr;
}
if (ObjCMethodDecl *Setter = D->getSetterMethodDecl()) {
getEntityInfo(Setter, SetterEntity, SA);
DInfo.ObjCPropDeclInfo.setter = &SetterEntity;
} else {
DInfo.ObjCPropDeclInfo.setter = 0;
DInfo.ObjCPropDeclInfo.setter = nullptr;
}
return handleDecl(D, D->getLocation(), getCursor(D), DInfo);
@ -700,7 +703,7 @@ bool IndexingContext::handleReference(const NamedDecl *D, SourceLocation Loc,
Cursor,
getIndexLoc(Loc),
&RefEntity,
Parent ? &ParentEntity : 0,
Parent ? &ParentEntity : nullptr,
&Container };
CB.indexEntityReference(ClientData, &Info);
return true;
@ -712,7 +715,7 @@ bool IndexingContext::isNotFromSourceFile(SourceLocation Loc) const {
SourceManager &SM = Ctx->getSourceManager();
SourceLocation FileLoc = SM.getFileLoc(Loc);
FileID FID = SM.getFileID(FileLoc);
return SM.getFileEntryForID(FID) == 0;
return SM.getFileEntryForID(FID) == nullptr;
}
void IndexingContext::addContainerInMap(const DeclContext *DC,
@ -736,10 +739,10 @@ void IndexingContext::addContainerInMap(const DeclContext *DC,
CXIdxClientEntity IndexingContext::getClientEntity(const Decl *D) const {
if (!D)
return 0;
return nullptr;
EntityMapTy::const_iterator I = EntityMap.find(D);
if (I == EntityMap.end())
return 0;
return nullptr;
return I->second;
}
@ -848,28 +851,28 @@ IndexingContext::getEntityContainer(const Decl *D) const {
CXIdxClientContainer
IndexingContext::getClientContainerForDC(const DeclContext *DC) const {
if (!DC)
return 0;
return nullptr;
ContainerMapTy::const_iterator I = ContainerMap.find(DC);
if (I == ContainerMap.end())
return 0;
return nullptr;
return I->second;
}
CXIdxClientFile IndexingContext::getIndexFile(const FileEntry *File) {
if (!File)
return 0;
return nullptr;
FileMapTy::iterator FI = FileMap.find(File);
if (FI != FileMap.end())
return FI->second;
return 0;
return nullptr;
}
CXIdxLoc IndexingContext::getIndexLoc(SourceLocation Loc) const {
CXIdxLoc idxLoc = { {0, 0}, 0 };
CXIdxLoc idxLoc = { {nullptr, nullptr}, 0 };
if (Loc.isInvalid())
return idxLoc;
@ -1093,7 +1096,7 @@ void IndexingContext::getEntityInfo(const NamedDecl *D,
EntityInfo.name = SA.toCStr(II->getName());
} else if (isa<TagDecl>(D) || isa<FieldDecl>(D) || isa<NamespaceDecl>(D)) {
EntityInfo.name = 0; // anonymous tag/field/namespace.
EntityInfo.name = nullptr; // anonymous tag/field/namespace.
} else {
SmallString<256> StrBuf;
@ -1108,7 +1111,7 @@ void IndexingContext::getEntityInfo(const NamedDecl *D,
SmallString<512> StrBuf;
bool Ignore = getDeclCursorUSR(D, StrBuf);
if (Ignore) {
EntityInfo.USR = 0;
EntityInfo.USR = nullptr;
} else {
EntityInfo.USR = SA.copyCStr(StrBuf.str());
}

View File

@ -49,8 +49,8 @@ struct EntityInfo : public CXIdxEntityInfo {
IntrusiveRefCntPtr<AttrListInfo> AttrList;
EntityInfo() {
name = USR = 0;
attributes = 0;
name = USR = nullptr;
attributes = nullptr;
numAttributes = 0;
}
};
@ -86,9 +86,9 @@ struct DeclInfo : public CXIdxDeclInfo {
this->isRedeclaration = isRedeclaration;
this->isDefinition = isDefinition;
this->isContainer = isContainer;
attributes = 0;
attributes = nullptr;
numAttributes = 0;
declAsContainer = semanticContainer = lexicalContainer = 0;
declAsContainer = semanticContainer = lexicalContainer = nullptr;
flags = 0;
}
DeclInfo(DInfoKind K,
@ -97,9 +97,9 @@ struct DeclInfo : public CXIdxDeclInfo {
this->isRedeclaration = isRedeclaration;
this->isDefinition = isDefinition;
this->isContainer = isContainer;
attributes = 0;
attributes = nullptr;
numAttributes = 0;
declAsContainer = semanticContainer = lexicalContainer = 0;
declAsContainer = semanticContainer = lexicalContainer = nullptr;
flags = 0;
}
};
@ -145,7 +145,7 @@ struct ObjCInterfaceDeclInfo : public ObjCContainerDeclInfo {
ObjCInterfaceDeclInfo(const ObjCInterfaceDecl *D)
: ObjCContainerDeclInfo(Info_ObjCInterface,
/*isForwardRef=*/false,
/*isRedeclaration=*/D->getPreviousDecl() != 0,
/*isRedeclaration=*/D->getPreviousDecl() != nullptr,
/*isImplementation=*/false) { }
static bool classof(const DeclInfo *D) {
@ -224,7 +224,7 @@ struct IBOutletCollectionInfo : public AttrInfo {
IBOutletCollectionInfo(CXCursor C, CXIdxLoc Loc, const Attr *A) :
AttrInfo(CXIdxAttr_IBOutletCollection, C, Loc, A) {
assert(C.kind == CXCursor_IBOutletCollectionAttr);
IBCollInfo.objcClass = 0;
IBCollInfo.objcClass = nullptr;
}
IBOutletCollectionInfo(const IBOutletCollectionInfo &other);
@ -252,7 +252,7 @@ public:
const CXIdxAttrInfo *const *getAttrs() const {
if (CXAttrs.empty())
return 0;
return nullptr;
return CXAttrs.data();
}
unsigned getNumAttrs() const { return (unsigned)CXAttrs.size(); }
@ -333,7 +333,7 @@ class IndexingContext {
public:
IndexingContext(CXClientData clientData, IndexerCallbacks &indexCallbacks,
unsigned indexOptions, CXTranslationUnit cxTU)
: Ctx(0), ClientData(clientData), CB(indexCallbacks),
: Ctx(nullptr), ClientData(clientData), CB(indexCallbacks),
IndexOptions(indexOptions), CXTU(cxTU),
StrScratch(), StrAdapterCount(0) { }
@ -376,19 +376,19 @@ public:
void indexTagDecl(const TagDecl *D);
void indexTypeSourceInfo(TypeSourceInfo *TInfo, const NamedDecl *Parent,
const DeclContext *DC = 0);
const DeclContext *DC = nullptr);
void indexTypeLoc(TypeLoc TL, const NamedDecl *Parent,
const DeclContext *DC = 0);
const DeclContext *DC = nullptr);
void indexNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS,
const NamedDecl *Parent,
const DeclContext *DC = 0);
const DeclContext *DC = nullptr);
void indexDeclContext(const DeclContext *DC);
void indexBody(const Stmt *S, const NamedDecl *Parent,
const DeclContext *DC = 0);
const DeclContext *DC = nullptr);
void handleDiagnosticSet(CXDiagnosticSet CXDiagSet);
@ -431,13 +431,13 @@ public:
bool handleReference(const NamedDecl *D, SourceLocation Loc, CXCursor Cursor,
const NamedDecl *Parent,
const DeclContext *DC,
const Expr *E = 0,
const Expr *E = nullptr,
CXIdxEntityRefKind Kind = CXIdxEntityRef_Direct);
bool handleReference(const NamedDecl *D, SourceLocation Loc,
const NamedDecl *Parent,
const DeclContext *DC,
const Expr *E = 0,
const Expr *E = nullptr,
CXIdxEntityRefKind Kind = CXIdxEntityRef_Direct);
bool isNotFromSourceFile(SourceLocation Loc) const;
@ -465,7 +465,7 @@ private:
bool handleDecl(const NamedDecl *D,
SourceLocation Loc, CXCursor Cursor,
DeclInfo &DInfo,
const DeclContext *LexicalDC = 0);
const DeclContext *LexicalDC = nullptr);
bool handleObjCContainer(const ObjCContainerDecl *D,
SourceLocation Loc, CXCursor Cursor,