[clang] [clang][dataflow] Fix casting in `ChromiumCheckModel`. (PR #101640)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 2 02:02:06 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Pasquale Riello (Pask00)
<details>
<summary>Changes</summary>
`getDirectCallee()` may return a null pointer if the callee is not a `FunctionDecl` (for example when using function pointers), this requires to use `dyn_cast_or_null` instead of `dyn_cast`.
---
Full diff: https://github.com/llvm/llvm-project/pull/101640.diff
1 Files Affected:
- (modified) clang/lib/Analysis/FlowSensitive/Models/ChromiumCheckModel.cpp (+1-1)
``````````diff
diff --git a/clang/lib/Analysis/FlowSensitive/Models/ChromiumCheckModel.cpp b/clang/lib/Analysis/FlowSensitive/Models/ChromiumCheckModel.cpp
index 5ac71e1d6bf64..27a624c61c7f2 100644
--- a/clang/lib/Analysis/FlowSensitive/Models/ChromiumCheckModel.cpp
+++ b/clang/lib/Analysis/FlowSensitive/Models/ChromiumCheckModel.cpp
@@ -56,7 +56,7 @@ bool ChromiumCheckModel::transfer(const CFGElement &Element, Environment &Env) {
return false;
auto Stmt = CS->getStmt();
if (const auto *Call = dyn_cast<CallExpr>(Stmt)) {
- if (const auto *M = dyn_cast<CXXMethodDecl>(Call->getDirectCallee())) {
+ if (const auto *M = dyn_cast_or_null<CXXMethodDecl>(Call->getDirectCallee())) {
if (isCheckLikeMethod(CheckDecls, *M)) {
// Mark this branch as unreachable.
Env.assume(Env.arena().makeLiteral(false));
``````````
</details>
https://github.com/llvm/llvm-project/pull/101640
More information about the cfe-commits
mailing list