================ @@ -406,6 +406,39 @@ AST_MATCHER(CXXConstructExpr, isSafeSpanTwoParamConstruct) { } return false; } + +AST_MATCHER(ArraySubscriptExpr, isSafeArraySubscript) { + // FIXME: Proper solution: + // - refactor Sema::CheckArrayAccess + // - split safe/OOB/unknown decision logic from diagnostics emitting code + // - e. g. "Try harder to find a NamedDecl to point at in the note." + // already duplicated + // - call both from Sema and from here + + const DeclRefExpr *BaseDRE = + dyn_cast_or_null<DeclRefExpr>(Node.getBase()->IgnoreParenImpCasts()); ---------------- haoNoQ wrote:
I don't think `IgnoreParenImpCasts()` can ever return null. ```suggestion const auto *BaseDRE = dyn_cast<DeclRefExpr>(Node.getBase()->IgnoreParenImpCasts()); ``` https://github.com/llvm/llvm-project/pull/80504 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits