[clang] [-Wunsafe-buffer-usage] Ignore constant safe indices in array subscripts (PR #80504)
Artem Dergachev via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 14 18:11:40 PST 2024
================
@@ -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
More information about the cfe-commits
mailing list