diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/AST/Decl.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 8553e030e2..c34d78c8a4 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -1204,8 +1204,11 @@ void VarDecl::setStorageClass(StorageClass SC) { } SourceRange VarDecl::getSourceRange() const { - if (getInit()) - return SourceRange(getOuterLocStart(), getInit()->getLocEnd()); + if (const Expr *Init = getInit()) { + SourceLocation InitEnd = Init->getLocEnd(); + if (InitEnd.isValid()) + return SourceRange(getOuterLocStart(), InitEnd); + } return DeclaratorDecl::getSourceRange(); } |