Author: Haojian Wu Date: 2022-07-01T20:16:06+02:00 New Revision: c99827349927a44334f2b04139168efd0bc87cd3
URL: https://github.com/llvm/llvm-project/commit/c99827349927a44334f2b04139168efd0bc87cd3 DIFF: https://github.com/llvm/llvm-project/commit/c99827349927a44334f2b04139168efd0bc87cd3.diff LOG: [pseudo] Fix an out-of-bound issue in getReduceRules. Added: Modified: clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h Removed: ################################################################################ diff --git a/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h b/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h index 70ce52924f110..664a1a3206fe6 100644 --- a/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h +++ b/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h @@ -140,8 +140,11 @@ class LRTable { // // ...apply reduce... // } llvm::ArrayRef<RuleID> getReduceRules(StateID State) const { + if (ReduceOffset[State] >= Reduces.size()) + return {}; + size_t Length = ReduceOffset[State + 1] - ReduceOffset[State]; return llvm::makeArrayRef(&Reduces[ReduceOffset[State]], - &Reduces[ReduceOffset[State + 1]]); + Length); } // Returns whether Terminal can follow Nonterminal in a valid source file. bool canFollow(SymbolID Nonterminal, SymbolID Terminal) const { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits