[clang] [NFC][Clang] Minor cleanups in UnsafeLibcFunctionCallGadget::matches(). (PR #177514)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 22 17:57:34 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Rohan Jacob-Rao (rohanjr)
<details>
<summary>Changes</summary>
- Remove unneeded dynamic cast
- Add consts
- Simplify boolean condition
---
Full diff: https://github.com/llvm/llvm-project/pull/177514.diff
1 Files Affected:
- (modified) clang/lib/Analysis/UnsafeBufferUsage.cpp (+8-9)
``````````diff
diff --git a/clang/lib/Analysis/UnsafeBufferUsage.cpp b/clang/lib/Analysis/UnsafeBufferUsage.cpp
index a7530d1250729..95316623f5d88 100644
--- a/clang/lib/Analysis/UnsafeBufferUsage.cpp
+++ b/clang/lib/Analysis/UnsafeBufferUsage.cpp
@@ -2143,14 +2143,14 @@ class UnsafeLibcFunctionCallGadget : public WarningGadget {
MatchResult &Result) {
if (ignoreUnsafeLibcCall(Ctx, *S, Handler))
return false;
- auto *CE = dyn_cast<CallExpr>(S);
- if (!CE || !CE->getDirectCallee())
+ const auto *CE = dyn_cast<CallExpr>(S);
+ if (!CE)
return false;
- const auto *FD = dyn_cast<FunctionDecl>(CE->getDirectCallee());
+ const auto *FD = CE->getDirectCallee();
if (!FD)
return false;
- bool IsGlobalAndNotInAnyNamespace =
+ const bool IsGlobalAndNotInAnyNamespace =
FD->isGlobal() && !FD->getEnclosingNamespaceContext()->isNamespace();
// A libc function must either be in the std:: namespace or a global
@@ -2161,11 +2161,10 @@ class UnsafeLibcFunctionCallGadget : public WarningGadget {
// printf, atoi, we consider it safe:
if (CE->getNumArgs() == 1 && isNullTermPointer(CE->getArg(0), Ctx))
return false;
- auto isSingleStringLiteralArg = false;
- if (CE->getNumArgs() == 1) {
- isSingleStringLiteralArg =
- isa<clang::StringLiteral>(CE->getArg(0)->IgnoreParenImpCasts());
- }
+
+ const bool isSingleStringLiteralArg =
+ CE->getNumArgs() == 1 &&
+ isa<clang::StringLiteral>(CE->getArg(0)->IgnoreParenImpCasts());
if (!isSingleStringLiteralArg) {
// (unless the call has a sole string literal argument):
if (libc_func_matchers::isPredefinedUnsafeLibcFunc(*FD)) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/177514
More information about the cfe-commits
mailing list