diff --git a/clang/lib/Tooling/Syntax/Pseudo/LRTable.cpp b/clang/lib/Tooling/Syntax/Pseudo/LRTable.cpp index 4f1494fff277d..957d17a503cf0 100644 --- a/clang/lib/Tooling/Syntax/Pseudo/LRTable.cpp +++ b/clang/lib/Tooling/Syntax/Pseudo/LRTable.cpp @@ -112,6 +112,8 @@ llvm::ArrayRef LRTable::find(StateID Src, SymbolID ID) const { "subrange of the StateIdx should be sorted!"); const LRTable::StateID *Start = llvm::partition_point( TargetedStates, [&Src](LRTable::StateID S) { return S < Src; }); + if (Start == TargetedStates.end()) + return {}; const LRTable::StateID *End = Start; while (End != TargetedStates.end() && *End == Src) ++End;