diff --git a/clang/lib/Analysis/UnsafeBufferUsage.cpp b/clang/lib/Analysis/UnsafeBufferUsage.cpp index ff4f940a596e3..12e99143cb148 100644 --- a/clang/lib/Analysis/UnsafeBufferUsage.cpp +++ b/clang/lib/Analysis/UnsafeBufferUsage.cpp @@ -2364,12 +2364,13 @@ template static std::optional getEndCharLoc(const NodeTy *Node, const SourceManager &SM, const LangOptions &LangOpts) { - unsigned TkLen = Lexer::MeasureTokenLength(Node->getEndLoc(), SM, LangOpts); - SourceLocation Loc = Node->getEndLoc().getLocWithOffset(TkLen - 1); - - if (Loc.isValid()) - return Loc; + if (unsigned TkLen = + Lexer::MeasureTokenLength(Node->getEndLoc(), SM, LangOpts)) { + SourceLocation Loc = Node->getEndLoc().getLocWithOffset(TkLen - 1); + if (Loc.isValid()) + return Loc; + } return std::nullopt; }