From: Argyrios Kyrtzidis Date: Sat, 18 Jul 2009 21:17:43 +0000 (+0000) Subject: Handle invalid ASTLocations instead of asserting. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b9685dc713679581b3953cd9ece0001b63f551f;p=clang Handle invalid ASTLocations instead of asserting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76335 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Index/ASTLocation.cpp b/lib/Index/ASTLocation.cpp index f73ddc087a..d83e0e33f3 100644 --- a/lib/Index/ASTLocation.cpp +++ b/lib/Index/ASTLocation.cpp @@ -83,11 +83,16 @@ bool ASTLocation::isImmediateParent(Decl *D, Stmt *Node) { } SourceRange ASTLocation::getSourceRange() const { + if (isInvalid()) + return SourceRange(); return isDecl() ? getDecl()->getSourceRange() : getStmt()->getSourceRange(); } void ASTLocation::print(llvm::raw_ostream &OS) { - assert(isValid() && "ASTLocation is not valid"); + if (isInvalid()) { + OS << "<< Invalid ASTLocation >>\n"; + return; + } OS << "[Decl: " << getDecl()->getDeclKindName() << " "; if (NamedDecl *ND = dyn_cast(getDecl()))