Skip to content

[alpha.webkit.UnretainedCallArgsChecker] Add a checker for NS or CF type call arguments. #130729

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 11, 2025

Conversation

rniwa
Copy link
Contributor

@rniwa rniwa commented Mar 11, 2025

This PR adds alpha.webkit.UnretainedCallArgsChecker by generalizing RawPtrRefCallArgsChecker. It checks call arguments of NS or CF types are backed by a RetainPtr or not. The new checker emits warnings for CF types in Objective-C++ code regardless of ARC and it emits warning for NS types when ARC is disabled.

Hard-code a few cases as safe: class and superclass properties on class interfaces and constant dictionary or array literals as well as the return value of NSClassFromString.

Finally, add the support for variadic function calls and selector invocations.

…ype call arguments.

This PR adds alpha.webkit.UnretainedCallArgsChecker by generalizing RawPtrRefCallArgsChecker.
It checks call arguments of NS or CF types are backed by a RetainPtr or not. The new checker
emits warnings for CF types in Objective-C++ code regardless of ARC and it emits warning for
NS types when ARC is disabled.

Hard-code a few cases as safe: class and superclass properties on class interfaces and
constant dictionary or array literals as well as the return value of NSClassFromString.

Finally, add the support for variadic function calls and selector invocations.
@llvmbot llvmbot added clang Clang issues not falling into any other category clang:static analyzer labels Mar 11, 2025
@rniwa rniwa requested a review from t-rasmud March 11, 2025 07:05
@llvmbot
Copy link
Member

llvmbot commented Mar 11, 2025

@llvm/pr-subscribers-clang

@llvm/pr-subscribers-clang-static-analyzer-1

Author: Ryosuke Niwa (rniwa)

Changes

This PR adds alpha.webkit.UnretainedCallArgsChecker by generalizing RawPtrRefCallArgsChecker. It checks call arguments of NS or CF types are backed by a RetainPtr or not. The new checker emits warnings for CF types in Objective-C++ code regardless of ARC and it emits warning for NS types when ARC is disabled.

Hard-code a few cases as safe: class and superclass properties on class interfaces and constant dictionary or array literals as well as the return value of NSClassFromString.

Finally, add the support for variadic function calls and selector invocations.


Patch is 27.09 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/130729.diff

7 Files Affected:

  • (modified) clang/docs/analyzer/checkers.rst (+6)
  • (modified) clang/include/clang/StaticAnalyzer/Checkers/Checkers.td (+4)
  • (modified) clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp (+38)
  • (modified) clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp (+4-2)
  • (modified) clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp (+130-6)
  • (added) clang/test/Analysis/Checkers/WebKit/unretained-call-args-arc.mm (+30)
  • (added) clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm (+396)
diff --git a/clang/docs/analyzer/checkers.rst b/clang/docs/analyzer/checkers.rst
index c947f26204159..e9df204480643 100644
--- a/clang/docs/analyzer/checkers.rst
+++ b/clang/docs/analyzer/checkers.rst
@@ -3642,6 +3642,12 @@ The goal of this rule is to make sure that lifetime of any dynamically allocated
 
 The rules of when to use and not to use CheckedPtr / CheckedRef are same as alpha.webkit.UncountedCallArgsChecker for ref-counted objects.
 
+alpha.webkit.UnretainedCallArgsChecker
+""""""""""""""""""""""""""""""""""""""
+The goal of this rule is to make sure that lifetime of any dynamically allocated NS or CF objects passed as a call argument keeps its memory region past the end of the call. This applies to call to any function, method, lambda, function pointer or functor. NS or CF objects aren't supposed to be allocated on stack so we check arguments for parameters of raw pointers and references to unretained types.
+
+The rules of when to use and not to use RetainPtr are same as alpha.webkit.UncountedCallArgsChecker for ref-counted objects.
+
 alpha.webkit.UncountedLocalVarsChecker
 """"""""""""""""""""""""""""""""""""""
 The goal of this rule is to make sure that any uncounted local variable is backed by a ref-counted object with lifetime that is strictly larger than the scope of the uncounted local variable. To be on the safe side we require the scope of an uncounted variable to be embedded in the scope of ref-counted object that backs it.
diff --git a/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td b/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
index 21b585169cf40..22fd97b32032b 100644
--- a/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
+++ b/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
@@ -1781,6 +1781,10 @@ def UncheckedCallArgsChecker : Checker<"UncheckedCallArgsChecker">,
   HelpText<"Check unchecked call arguments.">,
   Documentation<HasDocumentation>;
 
+def UnretainedCallArgsChecker : Checker<"UnretainedCallArgsChecker">,
+  HelpText<"Check unretained call arguments.">,
+  Documentation<HasDocumentation>;
+
 def UncountedLocalVarsChecker : Checker<"UncountedLocalVarsChecker">,
   HelpText<"Check uncounted local variables.">,
   Documentation<HasDocumentation>;
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
index 5e67cb29d08e4..ae0f8ad09f26e 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
@@ -8,6 +8,7 @@
 
 #include "ASTUtils.h"
 #include "PtrTypesSemantics.h"
+#include "clang/AST/Attr.h"
 #include "clang/AST/CXXInheritance.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/DeclCXX.h"
@@ -28,6 +29,15 @@ bool tryToFindPtrOrigin(
     std::function<bool(const clang::QualType)> isSafePtrType,
     std::function<bool(const clang::Expr *, bool)> callback) {
   while (E) {
+    if (auto *DRE = dyn_cast<DeclRefExpr>(E)) {
+      auto *ValDecl = DRE->getDecl();
+      auto QT = ValDecl->getType();
+      auto ValName = ValDecl->getName();
+      if (ValDecl && (ValName.starts_with('k') || ValName.starts_with("_k")) &&
+          QT.isConstQualified()) { // Treat constants such as kCF* as safe.
+        return callback(E, true);
+      }
+    }
     if (auto *tempExpr = dyn_cast<MaterializeTemporaryExpr>(E)) {
       E = tempExpr->getSubExpr();
       continue;
@@ -57,6 +67,10 @@ bool tryToFindPtrOrigin(
       E = tempExpr->getSubExpr();
       continue;
     }
+    if (auto *OpaqueValue = dyn_cast<OpaqueValueExpr>(E)) {
+      E = OpaqueValue->getSourceExpr();
+      continue;
+    }
     if (auto *Expr = dyn_cast<ConditionalOperator>(E)) {
       return tryToFindPtrOrigin(Expr->getTrueExpr(), StopAtFirstRefCountedObj,
                                 isSafePtr, isSafePtrType, callback) &&
@@ -129,6 +143,11 @@ bool tryToFindPtrOrigin(
           E = call->getArg(0);
           continue;
         }
+
+        auto Name = safeGetName(callee);
+        if (Name == "__builtin___CFStringMakeConstantString" ||
+            Name == "NSClassFromString")
+          return callback(E, true);
       }
     }
     if (auto *ObjCMsgExpr = dyn_cast<ObjCMessageExpr>(E)) {
@@ -136,7 +155,18 @@ bool tryToFindPtrOrigin(
         if (isSafePtrType(Method->getReturnType()))
           return callback(E, true);
       }
+      auto Selector = ObjCMsgExpr->getSelector();
+      auto NameForFirstSlot = Selector.getNameForSlot(0);
+      if ((NameForFirstSlot == "class" || NameForFirstSlot == "superclass") &&
+          !Selector.getNumArgs())
+        return callback(E, true);
     }
+    if (auto *ObjCDict = dyn_cast<ObjCDictionaryLiteral>(E))
+      return callback(ObjCDict, true);
+    if (auto *ObjCArray = dyn_cast<ObjCArrayLiteral>(E))
+      return callback(ObjCArray, true);
+    if (auto *ObjCStr = dyn_cast<ObjCStringLiteral>(E))
+      return callback(ObjCStr, true);
     if (auto *unaryOp = dyn_cast<UnaryOperator>(E)) {
       // FIXME: Currently accepts ANY unary operator. Is it OK?
       E = unaryOp->getSubExpr();
@@ -156,6 +186,14 @@ bool isASafeCallArg(const Expr *E) {
     if (auto *D = dyn_cast_or_null<VarDecl>(FoundDecl)) {
       if (isa<ParmVarDecl>(D) || D->isLocalVarDecl())
         return true;
+      if (auto *ImplicitP = dyn_cast<ImplicitParamDecl>(D)) {
+        auto Kind = ImplicitP->getParameterKind();
+        if (Kind == ImplicitParamKind::ObjCSelf ||
+            Kind == ImplicitParamKind::ObjCCmd ||
+            Kind == ImplicitParamKind::CXXThis ||
+            Kind == ImplicitParamKind::CXXVTT)
+          return true;
+      }
     } else if (auto *BD = dyn_cast_or_null<BindingDecl>(FoundDecl)) {
       VarDecl *VD = BD->getHoldingVar();
       if (VD && (isa<ParmVarDecl>(VD) || VD->isLocalVarDecl()))
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
index 419d9c2325412..e780f610eb389 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
@@ -372,7 +372,8 @@ std::optional<bool> isGetterOfSafePtr(const CXXMethodDecl *M) {
       if (auto *maybeRefToRawOperator = dyn_cast<CXXConversionDecl>(M)) {
         auto QT = maybeRefToRawOperator->getConversionType();
         auto *T = QT.getTypePtrOrNull();
-        return T && (T->isPointerType() || T->isReferenceType());
+        return T && (T->isPointerType() || T->isReferenceType() ||
+                     T->isObjCObjectPointerType());
       }
     }
   }
@@ -415,7 +416,8 @@ bool isPtrConversion(const FunctionDecl *F) {
   if (FunctionName == "getPtr" || FunctionName == "WeakPtr" ||
       FunctionName == "dynamicDowncast" || FunctionName == "downcast" ||
       FunctionName == "checkedDowncast" ||
-      FunctionName == "uncheckedDowncast" || FunctionName == "bitwise_cast")
+      FunctionName == "uncheckedDowncast" || FunctionName == "bitwise_cast" ||
+      FunctionName == "bridge_cast")
     return true;
 
   return false;
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
index 9d07c65da88af..2dc17f048f922 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
@@ -13,6 +13,7 @@
 #include "clang/AST/Decl.h"
 #include "clang/AST/DeclCXX.h"
 #include "clang/AST/DynamicRecursiveASTVisitor.h"
+#include "clang/Analysis/DomainSpecific/CocoaConventions.h"
 #include "clang/Basic/SourceLocation.h"
 #include "clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugReporter.h"
@@ -35,6 +36,9 @@ class RawPtrRefCallArgsChecker
   TrivialFunctionAnalysis TFA;
   EnsureFunctionAnalysis EFA;
 
+protected:
+  mutable std::optional<RetainTypeChecker> RTC;
+
 public:
   RawPtrRefCallArgsChecker(const char *description)
       : Bug(this, description, "WebKit coding guidelines") {}
@@ -80,9 +84,22 @@ class RawPtrRefCallArgsChecker
         Checker->visitCallExpr(CE, DeclWithIssue);
         return true;
       }
+
+      bool VisitTypedefDecl(TypedefDecl *TD) override {
+        if (Checker->RTC)
+          Checker->RTC->visitTypedef(TD);
+        return true;
+      }
+
+      bool VisitObjCMessageExpr(ObjCMessageExpr *ObjCMsgExpr) override {
+        Checker->visitObjCMessageExpr(ObjCMsgExpr, DeclWithIssue);
+        return true;
+      }
     };
 
     LocalVisitor visitor(this);
+    if (RTC)
+      RTC->visitTranslationUnitDecl(TUD);
     visitor.TraverseDecl(const_cast<TranslationUnitDecl *>(TUD));
   }
 
@@ -122,7 +139,7 @@ class RawPtrRefCallArgsChecker
         // if ((*P)->hasAttr<SafeRefCntblRawPtrAttr>())
         //  continue;
 
-        QualType ArgType = (*P)->getType().getCanonicalType();
+        QualType ArgType = (*P)->getType();
         // FIXME: more complex types (arrays, references to raw pointers, etc)
         std::optional<bool> IsUncounted = isUnsafePtr(ArgType);
         if (!IsUncounted || !(*IsUncounted))
@@ -138,6 +155,58 @@ class RawPtrRefCallArgsChecker
 
         reportBug(Arg, *P, D);
       }
+      for (; ArgIdx < CE->getNumArgs(); ++ArgIdx) {
+        const auto *Arg = CE->getArg(ArgIdx);
+        auto ArgType = Arg->getType();
+        std::optional<bool> IsUncounted = isUnsafePtr(ArgType);
+        if (!IsUncounted || !(*IsUncounted))
+          continue;
+
+        if (auto *defaultArg = dyn_cast<CXXDefaultArgExpr>(Arg))
+          Arg = defaultArg->getExpr();
+
+        if (isPtrOriginSafe(Arg))
+          continue;
+
+        reportBug(Arg, nullptr, D);
+      }
+    }
+  }
+
+  void visitObjCMessageExpr(const ObjCMessageExpr *E, const Decl *D) const {
+    if (BR->getSourceManager().isInSystemHeader(E->getExprLoc()))
+      return;
+
+    auto Selector = E->getSelector();
+    if (auto *Receiver = E->getInstanceReceiver()->IgnoreParenCasts()) {
+      std::optional<bool> IsUnsafe = isUnsafePtr(E->getReceiverType());
+      if (IsUnsafe && *IsUnsafe && !isPtrOriginSafe(Receiver)) {
+        if (auto *InnerMsg = dyn_cast<ObjCMessageExpr>(Receiver)) {
+          auto InnerSelector = InnerMsg->getSelector();
+          if (InnerSelector.getNameForSlot(0) == "alloc" &&
+              Selector.getNameForSlot(0).starts_with("init"))
+            return;
+        }
+        reportBugOnReceiver(Receiver, D);
+      }
+    }
+
+    auto *MethodDecl = E->getMethodDecl();
+    if (!MethodDecl)
+      return;
+
+    auto ArgCount = E->getNumArgs();
+    for (unsigned i = 0; i < ArgCount; ++i) {
+      auto *Arg = E->getArg(i);
+      bool hasParam = i < MethodDecl->param_size();
+      auto *Param = hasParam ? MethodDecl->getParamDecl(i) : nullptr;
+      auto ArgType = Arg->getType();
+      std::optional<bool> IsUnsafe = isUnsafePtr(ArgType);
+      if (!IsUnsafe || !(*IsUnsafe))
+        continue;
+      if (isPtrOriginSafe(Arg))
+        continue;
+      reportBug(Arg, Param, D);
     }
   }
 
@@ -158,6 +227,8 @@ class RawPtrRefCallArgsChecker
             // foo(NULL)
             return true;
           }
+          if (isa<ObjCStringLiteral>(ArgOrigin))
+            return true;
           if (isASafeCallArg(ArgOrigin))
             return true;
           if (EFA.isACallToEnsureFn(ArgOrigin))
@@ -212,7 +283,7 @@ class RawPtrRefCallArgsChecker
         overloadedOperatorType == OO_PipePipe)
       return true;
 
-    if (isCtorOfRefCounted(Callee))
+    if (isCtorOfSafePtr(Callee))
       return true;
 
     auto name = safeGetName(Callee);
@@ -277,9 +348,10 @@ class RawPtrRefCallArgsChecker
     }
     Os << " is " << ptrKind() << " and unsafe.";
 
+    bool usesDefaultArgValue = isa<CXXDefaultArgExpr>(CallArg) && Param;
     const SourceLocation SrcLocToReport =
-        isa<CXXDefaultArgExpr>(CallArg) ? Param->getDefaultArg()->getExprLoc()
-                                        : CallArg->getSourceRange().getBegin();
+        usesDefaultArgValue ? Param->getDefaultArg()->getExprLoc()
+                            : CallArg->getSourceRange().getBegin();
 
     PathDiagnosticLocation BSLoc(SrcLocToReport, BR->getSourceManager());
     auto Report = std::make_unique<BasicBugReport>(Bug, Os.str(), BSLoc);
@@ -304,6 +376,23 @@ class RawPtrRefCallArgsChecker
     Report->setDeclWithIssue(DeclWithIssue);
     BR->emitReport(std::move(Report));
   }
+
+  void reportBugOnReceiver(const Expr *CallArg,
+                           const Decl *DeclWithIssue) const {
+    assert(CallArg);
+
+    const SourceLocation SrcLocToReport = CallArg->getSourceRange().getBegin();
+
+    SmallString<100> Buf;
+    llvm::raw_svector_ostream Os(Buf);
+    Os << "Reciever is " << ptrKind() << " and unsafe.";
+
+    PathDiagnosticLocation BSLoc(SrcLocToReport, BR->getSourceManager());
+    auto Report = std::make_unique<BasicBugReport>(Bug, Os.str(), BSLoc);
+    Report->addRange(CallArg->getSourceRange());
+    Report->setDeclWithIssue(DeclWithIssue);
+    BR->emitReport(std::move(Report));
+  }
 };
 
 class UncountedCallArgsChecker final : public RawPtrRefCallArgsChecker {
@@ -317,7 +406,7 @@ class UncountedCallArgsChecker final : public RawPtrRefCallArgsChecker {
   }
 
   std::optional<bool> isUnsafePtr(QualType QT) const final {
-    return isUncountedPtr(QT);
+    return isUncountedPtr(QT.getCanonicalType());
   }
 
   bool isSafePtr(const CXXRecordDecl *Record) const final {
@@ -342,7 +431,7 @@ class UncheckedCallArgsChecker final : public RawPtrRefCallArgsChecker {
   }
 
   std::optional<bool> isUnsafePtr(QualType QT) const final {
-    return isUncheckedPtr(QT);
+    return isUncheckedPtr(QT.getCanonicalType());
   }
 
   bool isSafePtr(const CXXRecordDecl *Record) const final {
@@ -356,6 +445,33 @@ class UncheckedCallArgsChecker final : public RawPtrRefCallArgsChecker {
   const char *ptrKind() const final { return "unchecked"; }
 };
 
+class UnretainedCallArgsChecker final : public RawPtrRefCallArgsChecker {
+public:
+  UnretainedCallArgsChecker()
+      : RawPtrRefCallArgsChecker("Unretained call argument for a raw "
+                                 "pointer/reference parameter") {
+    RTC = RetainTypeChecker();
+  }
+
+  std::optional<bool> isUnsafeType(QualType QT) const final {
+    return RTC->isUnretained(QT);
+  }
+
+  std::optional<bool> isUnsafePtr(QualType QT) const final {
+    return RTC->isUnretained(QT);
+  }
+
+  bool isSafePtr(const CXXRecordDecl *Record) const final {
+    return isRetainPtr(Record);
+  }
+
+  bool isSafePtrType(const QualType type) const final {
+    return isRetainPtrType(type);
+  }
+
+  const char *ptrKind() const final { return "unretained"; }
+};
+
 } // namespace
 
 void ento::registerUncountedCallArgsChecker(CheckerManager &Mgr) {
@@ -373,3 +489,11 @@ void ento::registerUncheckedCallArgsChecker(CheckerManager &Mgr) {
 bool ento::shouldRegisterUncheckedCallArgsChecker(const CheckerManager &) {
   return true;
 }
+
+void ento::registerUnretainedCallArgsChecker(CheckerManager &Mgr) {
+  Mgr.registerChecker<UnretainedCallArgsChecker>();
+}
+
+bool ento::shouldRegisterUnretainedCallArgsChecker(const CheckerManager &) {
+  return true;
+}
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-call-args-arc.mm b/clang/test/Analysis/Checkers/WebKit/unretained-call-args-arc.mm
new file mode 100644
index 0000000000000..eb4735da60a05
--- /dev/null
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-call-args-arc.mm
@@ -0,0 +1,30 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -fobjc-arc -verify %s
+
+#import "objc-mock-types.h"
+
+SomeObj *provide();
+CFMutableArrayRef provide_cf();
+void someFunction();
+
+namespace raw_ptr {
+
+void foo() {
+  [provide() doWork];
+  CFArrayAppendValue(provide_cf(), nullptr);
+  // expected-warning@-1{{Call argument for parameter 'theArray' is unretained and unsafe [alpha.webkit.UnretainedCallArgsChecker]}}
+}
+
+} // namespace raw_ptr
+
+@interface AnotherObj : NSObject
+- (void)foo:(SomeObj *)obj;
+@end
+
+@implementation AnotherObj
+- (void)foo:(SomeObj*)obj {
+  [obj doWork];
+  [provide() doWork];
+  CFArrayAppendValue(provide_cf(), nullptr);
+  // expected-warning@-1{{Call argument for parameter 'theArray' is unretained and unsafe [alpha.webkit.UnretainedCallArgsChecker]}}
+}
+@end
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm b/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
new file mode 100644
index 0000000000000..3411cbdf5aa9b
--- /dev/null
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
@@ -0,0 +1,396 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify %s
+
+#include "objc-mock-types.h"
+
+SomeObj *provide();
+void consume_obj(SomeObj*);
+
+CFMutableArrayRef provide_cf();
+void consume_cf(CFMutableArrayRef);
+
+void some_function();
+
+namespace simple {
+  void foo() {
+    consume_obj(provide());
+    // expected-warning@-1{{Call argument is unretained and unsafe}}
+    consume_cf(provide_cf());
+    // expected-warning@-1{{Call argument is unretained and unsafe}}
+  }
+
+  // Test that the checker works with [[clang::suppress]].
+  void foo_suppressed() {
+    [[clang::suppress]] consume_obj(provide()); // no-warning
+    [[clang::suppress]] consume_cf(provide_cf()); // no-warning
+  }
+
+}
+
+namespace multi_arg {
+  void consume_retainable(int, SomeObj* foo, CFMutableArrayRef bar, bool);
+  void foo() {
+    consume_retainable(42, provide(), provide_cf(), true);
+    // expected-warning@-1{{Call argument for parameter 'foo' is unretained and unsafe}}
+    // expected-warning@-2{{Call argument for parameter 'bar' is unretained and unsafe}}
+  }
+
+  void consume_retainable(SomeObj* foo, ...);
+  void bar() {
+    consume_retainable(provide(), 1, provide_cf(), RetainPtr<CFMutableArrayRef> { provide_cf() }.get());
+    // expected-warning@-1{{Call argument for parameter 'foo' is unretained and unsafe}}
+    // expected-warning@-2{{Call argument is unretained and unsafe}}
+     consume_retainable(RetainPtr<SomeObj> { provide() }.get(), 1, RetainPtr<CFMutableArrayRef> { provide_cf() }.get());
+  }
+}
+
+namespace retained {
+  RetainPtr<SomeObj> provide_obj() { return RetainPtr<SomeObj>{}; }
+  void consume_obj(RetainPtr<SomeObj>) {}
+
+  RetainPtr<CFMutableArrayRef> provide_cf() { return CFMutableArrayRef{}; }
+  void consume_cf(RetainPtr<CFMutableArrayRef>) {}
+
+  void foo() {
+    consume_obj(provide_obj().get()); // no warning
+    consume_cf(provide_cf().get()); // no warning
+  }
+}
+
+namespace methods {
+  struct Consumer {
+    void consume_obj(SomeObj* ptr);
+    void consume_cf(CFMutableArrayRef ref);
+  };
+
+  void foo() {
+    Consumer c;
+
+    c.consume_obj(provide());
+    // expected-warning@-1{{Call argument for parameter 'ptr' is unretained and unsafe}}
+    c.consume_cf(provide_cf());
+    // expected-warning@-1{{Call argument for parameter 'ref' is unretained and unsafe}}
+  }
+
+  void foo2() {
+    struct Consumer {
+      void consume(SomeObj*) { some_function(); }
+      void whatever() {
+        consume(provide());
+        // expected-warning@-1{{Call argument is unretained and unsafe}}
+      }
+
+      void consume_cf(CFMutableArrayRef) { some_function(); }
+      void something() {
+        consume_cf(provide_cf());
+        // expected-warning@-1{{Call argument is unretained and unsafe}}
+      }
+    };
+  }
+
+  void foo3() {
+    struct Consumer {
+      void consume(SomeObj*) { some_function(); }
+      void whatever() {
+        this->consume(provide());
+        // expected-warning@-1{{Call argument is unretained and unsafe}}
+      }
+
+      void consume_cf(CFMutableArrayRef) { some_function(); }
+      void something() {
+        this->consume_cf(provide_cf());
+        // expected-warning@-1{{Call argument is unretained and unsafe}}
+      }
+    };
+  }
+
+}
+
+namespace casts {
+  void foo() {
+    consume_obj(provide());
+    // expected-warning@-1{{Call argument is unretained and unsafe}}
+
+    consume_obj(static_cast<OtherObj*>(provide()));
+    // expected-warning@-1{{Call argument is unretained and unsafe}}
+
+    consume_obj(reinterpret_cast<OtherObj*>(provide()));
+    // expected-warning@-1{{Call argument is unretained and unsafe}}
+
+    consume_obj(downcast<OtherObj>(provide()));
+    // expected-warni...
[truncated]

@t-rasmud
Copy link
Contributor

Thank you for addressing all the feedback. Didn't really mean to make you create a new PR just for that one comment, I should've mentioned it was purely for clarification.

Copy link
Contributor

@t-rasmud t-rasmud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@rniwa
Copy link
Contributor Author

rniwa commented Mar 11, 2025

Thanks for the review!

@rniwa rniwa merged commit 9e64fc6 into llvm:main Mar 11, 2025
15 checks passed
@rniwa rniwa deleted the add-unretained-call-args-checker branch March 11, 2025 19:50
@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder openmp-offload-sles-build-only running on rocm-worker-hw-04-sles while building clang at step 6 "Add check check-clang".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/140/builds/18759

Here is the relevant piece of the build log for the reference
Step 6 (Add check check-clang) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang -cc1 -internal-isystem /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang -cc1 -internal-isystem /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang -cc1 -internal-isystem /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x000000000286d858 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x286d858)
 #1 0x000000000286ad54 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007f171e088910 __restore_rt (/lib64/libpthread.so.0+0x16910)
 #3 0x00007f171d9b6d2b raise (/lib64/libc.so.6+0x4ad2b)
 #4 0x00007f171d9b83e5 abort (/lib64/libc.so.6+0x4c3e5)
 #5 0x00007f171d9aec6a __assert_fail_base (/lib64/libc.so.6+0x42c6a)
 #6 0x00007f171d9aecf2 (/lib64/libc.so.6+0x42cf2)
 #7 0x0000000004d9e2ee clang::IgnoreParensSingleStep(clang::Expr*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x4d9e2ee)
 #8 0x000000000575e41c clang::Expr::IgnoreParenCasts() (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x575e41c)
 #9 0x00000000045fdd72 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#10 0x00000000056c02c5 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56c02c5)
#11 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#12 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#13 0x00000000056c0230 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56c0230)
#14 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#15 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#16 0x00000000056c3ec8 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56c3ec8)
#17 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#18 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#19 0x00000000056d1ba8 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56d1ba8)
#20 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#21 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#22 0x00000000056c2888 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56c2888)
#23 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#24 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#25 0x00000000056e8f4f clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56e8f4f)
#26 0x00000000045facd4 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#27 0x00000000056b62b5 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b62b5)
#28 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#30 0x00000000056c414e clang::DynamicRecursiveASTVisitorBase<false>::TraverseCompoundStmt(clang::CompoundStmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56c414e)
#31 0x00000000056b5b09 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.8768) DynamicRecursiveASTVisitor.cpp:0:0
#32 0x00000000056b5c33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56b5c33)
#33 0x00000000056ebbac clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseFunctionHelper(clang::FunctionDecl*) DynamicRecursiveASTVisitor.cpp:0:0
#34 0x00000000056ebe67 clang::DynamicRecursiveASTVisitorBase<false>::TraverseFunctionDecl(clang::FunctionDecl*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56ebe67)
#35 0x00000000045facd4 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#36 0x00000000056b7556 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseDeclContextHelper(clang::DeclContext*) (.part.7182) DynamicRecursiveASTVisitor.cpp:0:0
#37 0x00000000056e2a09 clang::DynamicRecursiveASTVisitorBase<false>::TraverseNamespaceDecl(clang::NamespaceDecl*) (/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/clang+0x56e2a09)
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder openmp-offload-amdgpu-runtime-2 running on rocm-worker-hw-02 while building clang at step 7 "Add check check-clang".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/10/builds/1097

Here is the relevant piece of the build log for the reference
Step 7 (Add check check-clang) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/bin/clang -cc1 -internal-isystem /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.src/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/bin/clang -cc1 -internal-isystem /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.src/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.src/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/bin/clang -cc1 -internal-isystem /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.src/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x00007b5ba4de6670 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libLLVMSupport.so.21.0git+0x1e6670)
 #1 0x00007b5ba4de3a6f llvm::sys::RunSignalHandlers() (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libLLVMSupport.so.21.0git+0x1e3a6f)
 #2 0x00007b5ba4de3bba SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007b5ba4442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007b5ba44969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007b5ba44969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007b5ba44969fc pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007b5ba4442476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007b5ba44287f3 abort ./stdlib/abort.c:81:7
 #9 0x00007b5ba442871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007b5ba4439e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x00007b5ba2819191 (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x619191)
#12 0x00007b5ba2823008 clang::Expr::IgnoreParenCasts() (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x623008)
#13 0x00007b5ba08364df (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#14 0x00007b5ba275fd50 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x55fd50)
#15 0x00007b5ba274d671 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#16 0x00007b5ba274d7b4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54d7b4)
#17 0x00007b5ba275fc88 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x55fc88)
#18 0x00007b5ba274d671 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#19 0x00007b5ba274d7b4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54d7b4)
#20 0x00007b5ba27599f8 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#21 0x00007b5ba2775593 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x575593)
#22 0x00007b5ba274d671 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#23 0x00007b5ba274d7b4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54d7b4)
#24 0x00007b5ba27599f8 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#25 0x00007b5ba2774193 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x574193)
#26 0x00007b5ba274d671 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#27 0x00007b5ba274d7b4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54d7b4)
#28 0x00007b5ba27599f8 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x00007b5ba275c526 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x55c526)
#30 0x00007b5ba274d671 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#31 0x00007b5ba274d7b4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54d7b4)
#32 0x00007b5ba27835dd clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x5835dd)
#33 0x00007b5ba08351fb (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#34 0x00007b5ba274ced6 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54ced6)
#35 0x00007b5ba274d671 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#36 0x00007b5ba274d7b4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/botworker/builds/openmp-offload-amdgpu-runtime-2/llvm.build/lib/libclangAST.so.21.0git+0x54d7b4)
#37 0x00007b5ba27599f8 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-ubuntu-fast running on sie-linux-worker while building clang at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/144/builds/20047

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang -cc1 -internal-isystem /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang -cc1 -internal-isystem /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang -cc1 -internal-isystem /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x0000642e8f7284c0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x21b94c0)
 #1 0x0000642e8f7258bf llvm::sys::RunSignalHandlers() (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x21b68bf)
 #2 0x0000642e8f725a0a SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x0000735e5ab0a520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000735e5ab5e9fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x0000735e5ab5e9fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x0000735e5ab5e9fc pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x0000735e5ab0a476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x0000735e5aaf07f3 abort ./stdlib/abort.c:81:7
 #9 0x0000735e5aaf071b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x0000735e5ab01e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x0000642e921fceb4 (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x4c8deb4)
#12 0x0000642e92d5b8b8 clang::Expr::IgnoreParenCasts() (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x57ec8b8)
#13 0x0000642e918f41bf (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#14 0x0000642e92c9b6d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x572c6d0)
#15 0x0000642e92c88ff1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#16 0x0000642e92c89134 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x571a134)
#17 0x0000642e92c9b608 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x572c608)
#18 0x0000642e92c88ff1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#19 0x0000642e92c89134 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x571a134)
#20 0x0000642e92c95378 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#21 0x0000642e92cb0f13 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x5741f13)
#22 0x0000642e92c88ff1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#23 0x0000642e92c89134 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x571a134)
#24 0x0000642e92c95378 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#25 0x0000642e92cafb13 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x5740b13)
#26 0x0000642e92c88ff1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#27 0x0000642e92c89134 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x571a134)
#28 0x0000642e92c95378 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x0000642e92c97ea6 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x5728ea6)
#30 0x0000642e92c88ff1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#31 0x0000642e92c89134 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x571a134)
#32 0x0000642e92cbee4d clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x574fe4d)
#33 0x0000642e918f2edb (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#34 0x0000642e92c88856 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x5719856)
#35 0x0000642e92c88ff1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#36 0x0000642e92c89134 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/clang+0x571a134)
#37 0x0000642e92c95378 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder clang-cmake-x86_64-avx512-linux running on avx512-intel64 while building clang at step 7 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/133/builds/12649

Here is the relevant piece of the build log for the reference
Step 7 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang -cc1 -internal-isystem /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang -cc1 -internal-isystem /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang -cc1 -internal-isystem /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x00000000020cb521 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x20cb521)
 #1 0x00000000020c8a95 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007ff99d982db0 __restore_rt (/lib64/libc.so.6+0x59db0)
 #3 0x00007ff99d9cf42c __pthread_kill_implementation (/lib64/libc.so.6+0xa642c)
 #4 0x00007ff99d982d06 gsignal (/lib64/libc.so.6+0x59d06)
 #5 0x00007ff99d9557d3 abort (/lib64/libc.so.6+0x2c7d3)
 #6 0x00007ff99d9556fb _nl_load_domain.cold (/lib64/libc.so.6+0x2c6fb)
 #7 0x00007ff99d97bc86 (/lib64/libc.so.6+0x52c86)
 #8 0x0000000004afef4c (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x4afef4c)
 #9 0x0000000005613ec0 clang::Expr::IgnoreParenCasts() (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5613ec0)
#10 0x000000000422d5f4 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#11 0x0000000005562258 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5562258)
#12 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#13 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
#14 0x00000000055621a1 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x55621a1)
#15 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#16 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
#17 0x0000000005559bf9 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#18 0x0000000005574e32 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5574e32)
#19 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#20 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
#21 0x0000000005559bf9 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#22 0x0000000005574612 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5574612)
#23 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#24 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
#25 0x0000000005559bf9 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#26 0x0000000005576c56 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5576c56)
#27 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#28 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
#29 0x000000000558253c clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x558253c)
#30 0x0000000004228a37 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#31 0x0000000005551036 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5551036)
#32 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#33 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
#34 0x0000000005559bf9 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseBreakStmt(clang::BreakStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#35 0x0000000005559f0a clang::DynamicRecursiveASTVisitorBase<false>::TraverseCompoundStmt(clang::CompoundStmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x5559f0a)
#36 0x000000000554f907 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#37 0x000000000554fa33 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/stage1/bin/clang+0x554fa33)
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder arc-builder running on arc-worker while building clang at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/3/builds/12949

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /buildbot/worker/arc-folder/build/bin/clang -cc1 -internal-isystem /buildbot/worker/arc-folder/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /buildbot/worker/arc-folder/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /buildbot/worker/arc-folder/build/bin/clang -cc1 -internal-isystem /buildbot/worker/arc-folder/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /buildbot/worker/arc-folder/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /buildbot/worker/arc-folder/llvm-project/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /buildbot/worker/arc-folder/build/bin/clang -cc1 -internal-isystem /buildbot/worker/arc-folder/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /buildbot/worker/arc-folder/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x00000000020ace48 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/buildbot/worker/arc-folder/build/bin/clang+0x20ace48)
 #1 0x00000000020aa1e5 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007f4660c08630 __restore_rt sigaction.c:0:0
 #3 0x00007f465f9583d7 raise (/usr/lib64/libc.so.6+0x363d7)
 #4 0x00007f465f959ac8 abort (/usr/lib64/libc.so.6+0x37ac8)
 #5 0x00007f465f9511a6 __assert_fail_base (/usr/lib64/libc.so.6+0x2f1a6)
 #6 0x00007f465f951252 (/usr/lib64/libc.so.6+0x2f252)
 #7 0x0000000004a88eb4 (/buildbot/worker/arc-folder/build/bin/clang+0x4a88eb4)
 #8 0x00000000055b39b0 clang::Expr::IgnoreParenCasts() (/buildbot/worker/arc-folder/build/bin/clang+0x55b39b0)
 #9 0x00000000041c79d4 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#10 0x00000000054e90f5 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/buildbot/worker/arc-folder/build/bin/clang+0x54e90f5)
#11 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#12 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#13 0x00000000054e9062 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/buildbot/worker/arc-folder/build/bin/clang+0x54e9062)
#14 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#15 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#16 0x0000000005503102 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/buildbot/worker/arc-folder/build/bin/clang+0x5503102)
#17 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#18 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#19 0x0000000005508202 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/buildbot/worker/arc-folder/build/bin/clang+0x5508202)
#20 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#21 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#22 0x000000000550e7a6 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/buildbot/worker/arc-folder/build/bin/clang+0x550e7a6)
#23 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#24 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#25 0x00000000055136b9 clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/buildbot/worker/arc-folder/build/bin/clang+0x55136b9)
#26 0x00000000041c2f27 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#27 0x00000000054da816 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54da816)
#28 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#30 0x00000000054e844a clang::DynamicRecursiveASTVisitorBase<false>::TraverseCompoundStmt(clang::CompoundStmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54e844a)
#31 0x00000000054daac1 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#32 0x00000000054dabf3 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/buildbot/worker/arc-folder/build/bin/clang+0x54dabf3)
#33 0x000000000551fb55 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseFunctionHelper(clang::FunctionDecl*) DynamicRecursiveASTVisitor.cpp:0:0
#34 0x000000000551fdf0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseFunctionDecl(clang::FunctionDecl*) (/buildbot/worker/arc-folder/build/bin/clang+0x551fdf0)
#35 0x00000000041c2f27 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#36 0x00000000054e220c clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseDeclContextHelper(clang::DeclContext*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#37 0x0000000005512b46 clang::DynamicRecursiveASTVisitorBase<false>::TraverseNamespaceDecl(clang::NamespaceDecl*) (/buildbot/worker/arc-folder/build/bin/clang+0x5512b46)
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu running on sie-linux-worker3 while building clang at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/174/builds/14353

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 139

Command Output (stderr):
--
RUN: at line 1: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang -cc1 -internal-isystem /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang -cc1 -internal-isystem /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang -cc1 -internal-isystem /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x0000564c7b86883f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x459183f)
 #1 0x0000564c7b866014 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007f691080f420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x0000564c7ee58ff8 clang::Expr::IgnoreParenCasts() (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7b81ff8)
 #4 0x0000564c7d98bf60 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
 #5 0x0000564c7edb1ef8 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7adaef8)
 #6 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
 #7 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
 #8 0x0000564c7edb1e1f clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7adae1f)
 #9 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#10 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
#11 0x0000564c7edacdb5 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7ad5db5)
#12 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#13 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
#14 0x0000564c7edae1f5 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7ad71f5)
#15 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#16 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
#17 0x0000564c7edafb8d clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7ad8b8d)
#18 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#19 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
#20 0x0000564c7edbe7ea clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7ae77ea)
#21 0x0000564c7d98735b (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#22 0x0000564c7ed78686 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa1686)
#23 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#24 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
#25 0x0000564c7ed8805d clang::DynamicRecursiveASTVisitorBase<false>::TraverseCompoundStmt(clang::CompoundStmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7ab105d)
#26 0x0000564c7ed79e49 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) DynamicRecursiveASTVisitor.cpp:0:0
#27 0x0000564c7ed79f94 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aa2f94)
#28 0x0000564c7edc8637 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseFunctionHelper(clang::FunctionDecl*) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x0000564c7edc88c5 clang::DynamicRecursiveASTVisitorBase<false>::TraverseFunctionDecl(clang::FunctionDecl*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7af18c5)
#30 0x0000564c7d98735b (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#31 0x0000564c7ed78dec clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseDeclContextHelper(clang::DeclContext*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#32 0x0000564c7eda1257 clang::DynamicRecursiveASTVisitorBase<false>::TraverseNamespaceDecl(clang::NamespaceDecl*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7aca257)
#33 0x0000564c7d98735b (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#34 0x0000564c7ed78dec clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseDeclContextHelper(clang::DeclContext*) (.part.0) DynamicRecursiveASTVisitor.cpp:0:0
#35 0x0000564c7ed9b772 clang::DynamicRecursiveASTVisitorBase<false>::TraverseTranslationUnitDecl(clang::TranslationUnitDecl*) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x7ac4772)
#36 0x0000564c7d987755 void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::UnretainedCallArgsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) RawPtrRefCallArgsChecker.cpp:0:0
#37 0x0000564c7da04a31 clang::ento::CheckerManager::runCheckersOnASTDecl(clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) (/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/bin/clang+0x672da31)
#38 0x0000564c7d62398e (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) AnalysisConsumer.cpp:0:0
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder lldb-remote-linux-ubuntu running on as-builder-9 while building clang at step 16 "test-check-lldb-api".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/195/builds/6030

Here is the relevant piece of the build log for the reference
Step 16 (test-check-lldb-api) failure: Test just built components: check-lldb-api completed (failure)
******************** TEST 'lldb-api :: functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py' FAILED ********************
Script:
--
/usr/bin/python3.12 /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./lib --env LLVM_INCLUDE_DIR=/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/include --env LLVM_TOOLS_DIR=/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./bin --libcxx-include-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/include/c++/v1 --libcxx-include-target-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/include/aarch64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./lib/aarch64-unknown-linux-gnu --arch aarch64 --build-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/lldb-test-build.noindex --lldb-module-cache-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./bin/lldb --compiler /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/bin/clang --dsymutil /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./bin --lldb-obj-root /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/tools/lldb --lldb-libs-dir /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./lib --platform-url connect://jetson-agx-2198.lab.llvm.org:1234 --platform-working-dir /home/ubuntu/lldb-tests --sysroot /mnt/fs/jetson-agx-ubuntu --env ARCH_CFLAGS=-mcpu=cortex-a78 --platform-name remote-linux --skip-category=lldb-server /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/test/API/functionalities/thread/concurrent_events -p TestConcurrentManyBreakpoints.py
--
Exit Code: 1

Command Output (stdout):
--
lldb version 21.0.0git (https://github.com/llvm/llvm-project.git revision 9e64fc6fb7d9a1ea9fe59d82380219508aee649f)
  clang revision 9e64fc6fb7d9a1ea9fe59d82380219508aee649f
  llvm revision 9e64fc6fb7d9a1ea9fe59d82380219508aee649f
Setting up remote platform 'remote-linux'
Connecting to remote platform 'remote-linux' at 'connect://jetson-agx-2198.lab.llvm.org:1234'...
Connected.
Setting remote platform working directory to '/home/ubuntu/lldb-tests'...
Skipping the following test categories: ['lldb-server', 'dsym', 'gmodules', 'debugserver', 'objc', 'lldb-dap']

--
Command Output (stderr):
--
WARNING:root:Custom libc++ is not supported for remote runs: ignoring --libcxx arguments
FAIL: LLDB (/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/bin/clang-aarch64) :: test (TestConcurrentManyBreakpoints.ConcurrentManyBreakpoints.test)
======================================================================
FAIL: test (TestConcurrentManyBreakpoints.ConcurrentManyBreakpoints.test)
   Test 100 breakpoints from 100 threads.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/packages/Python/lldbsuite/test/decorators.py", line 148, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py", line 16, in test
    self.do_thread_actions(num_breakpoint_threads=100)
  File "/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/packages/Python/lldbsuite/test/concurrent_base.py", line 225, in do_thread_actions
    self.assertEqual(
AssertionError: 1 != 101 : Expected to see 101 threads, but seeing 1. Details:
thread 1 running due to none at
	
Config=aarch64-/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/bin/clang
----------------------------------------------------------------------
Ran 1 test in 6.349s

FAILED (failures=1)

--

********************


@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder clang-ppc64le-linux-test-suite running on ppc64le-clang-test-suite while building clang at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/95/builds/10610

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang -cc1 -internal-isystem /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang -cc1 -internal-isystem /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang -cc1 -internal-isystem /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x000000001435bc00 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x1435bc00)
 #1 0x0000000014358c14 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007fffb67804d8 (linux-vdso64.so.1+0x4d8)
 #3 0x00007fffb601a448 raise (/lib64/libc.so.6+0x4a448)
 #4 0x00007fffb5ff4a54 abort (/lib64/libc.so.6+0x24a54)
 #5 0x00007fffb600dc30 __assert_fail_base (/lib64/libc.so.6+0x3dc30)
 #6 0x00007fffb600dcd4 __assert_fail (/lib64/libc.so.6+0x3dcd4)
 #7 0x000000001709b1e4 clang::IgnoreParensSingleStep(clang::Expr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x1709b1e4)
 #8 0x0000000017dc9164 clang::Expr::IgnoreParenCasts() (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17dc9164)
 #9 0x00000000166edbb8 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#10 0x0000000017cb8c40 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17cb8c40)
#11 0x0000000017c9caf4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17c9caf4)
#12 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#13 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca17d0)
#14 0x0000000017cb8b28 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17cb8b28)
#15 0x0000000017c9caf4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17c9caf4)
#16 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#17 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca17d0)
#18 0x0000000017cca9e4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17cca9e4)
#19 0x0000000017c9c4d4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17c9c4d4)
#20 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#21 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca17d0)
#22 0x0000000017cc47e4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17cc47e4)
#23 0x0000000017c9c1e0 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17c9c1e0)
#24 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#25 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca17d0)
#26 0x0000000017cd4458 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17cd4458)
#27 0x0000000017c9c800 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17c9c800)
#28 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca17d0)
#30 0x0000000017cf3f24 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseVarHelper(clang::VarDecl*) DynamicRecursiveASTVisitor.cpp:0:0
#31 0x0000000017cf3ff0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17cf3ff0)
#32 0x0000000017ce5618 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDecl(clang::Decl*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ce5618)
#33 0x00000000166e99f0 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#34 0x0000000017ca12a0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca12a0)
#35 0x0000000017c9b3c4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17c9b3c4)
#36 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#37 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/bin/clang+0x17ca17d0)
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Mar 11, 2025

LLVM Buildbot has detected a new failure on builder ppc64le-lld-multistage-test running on ppc64le-lld-multistage-test while building clang at step 7 "test-build-stage1-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/168/builds/9615

Here is the relevant piece of the build log for the reference
Step 7 (test-build-stage1-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang :: Analysis/Checkers/WebKit/unretained-call-args.mm' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
RUN: at line 1: /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang -cc1 -internal-isystem /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+ /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang -cc1 -internal-isystem /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
clang: /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/include/llvm/Support/Casting.h:662: decltype(auto) llvm::dyn_cast(From*) [with To = clang::ParenExpr; From = clang::Expr]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang -cc1 -internal-isystem /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/lib/clang/21/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -analyzer-checker=alpha.webkit.UnretainedCallArgsChecker -verify /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
1.	<eof> parser at end of file
 #0 0x000000001435bc00 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x1435bc00)
 #1 0x0000000014358c14 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007fffb3ba04d8 (linux-vdso64.so.1+0x4d8)
 #3 0x00007fffb343a448 raise (/lib64/libc.so.6+0x4a448)
 #4 0x00007fffb3414a54 abort (/lib64/libc.so.6+0x24a54)
 #5 0x00007fffb342dc30 __assert_fail_base (/lib64/libc.so.6+0x3dc30)
 #6 0x00007fffb342dcd4 __assert_fail (/lib64/libc.so.6+0x3dcd4)
 #7 0x000000001709b1e4 clang::IgnoreParensSingleStep(clang::Expr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x1709b1e4)
 #8 0x0000000017dc9164 clang::Expr::IgnoreParenCasts() (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17dc9164)
 #9 0x00000000166edbb8 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::VisitObjCMessageExpr(clang::ObjCMessageExpr*) RawPtrRefCallArgsChecker.cpp:0:0
#10 0x0000000017cb8c40 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17cb8c40)
#11 0x0000000017c9caf4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17c9caf4)
#12 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#13 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca17d0)
#14 0x0000000017cb8b28 clang::DynamicRecursiveASTVisitorBase<false>::TraverseObjCMessageExpr(clang::ObjCMessageExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17cb8b28)
#15 0x0000000017c9caf4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17c9caf4)
#16 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#17 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca17d0)
#18 0x0000000017cca9e4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCallExpr(clang::CallExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17cca9e4)
#19 0x0000000017c9c4d4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17c9c4d4)
#20 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#21 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca17d0)
#22 0x0000000017cc47e4 clang::DynamicRecursiveASTVisitorBase<false>::TraverseCXXBindTemporaryExpr(clang::CXXBindTemporaryExpr*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17cc47e4)
#23 0x0000000017c9c1e0 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17c9c1e0)
#24 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#25 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca17d0)
#26 0x0000000017cd4458 clang::DynamicRecursiveASTVisitorBase<false>::TraverseExprWithCleanups(clang::ExprWithCleanups*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17cd4458)
#27 0x0000000017c9c800 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17c9c800)
#28 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#29 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca17d0)
#30 0x0000000017cf3f24 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseVarHelper(clang::VarDecl*) DynamicRecursiveASTVisitor.cpp:0:0
#31 0x0000000017cf3ff0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseVarDecl(clang::VarDecl*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17cf3ff0)
#32 0x0000000017ce5618 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDecl(clang::Decl*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ce5618)
#33 0x00000000166e99f0 (anonymous namespace)::RawPtrRefCallArgsChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const::LocalVisitor::TraverseDecl(clang::Decl*) RawPtrRefCallArgsChecker.cpp:0:0
#34 0x0000000017ca12a0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseDeclStmt(clang::DeclStmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca12a0)
#35 0x0000000017c9b3c4 clang::DynamicRecursiveASTVisitorBase<false>::dataTraverseNode(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17c9b3c4)
#36 0x0000000017ca1618 clang::RecursiveASTVisitor<(anonymous namespace)::Impl<false>>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.9457) DynamicRecursiveASTVisitor.cpp:0:0
#37 0x0000000017ca17d0 clang::DynamicRecursiveASTVisitorBase<false>::TraverseStmt(clang::Stmt*) (/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/bin/clang+0x17ca17d0)
...

@jplehr
Copy link
Contributor

jplehr commented Mar 11, 2025

Hi, can this be fixed forward or should we revert in the meantime?
Thank you!

@rniwa
Copy link
Contributor Author

rniwa commented Mar 11, 2025

Hi, can this be fixed forward or should we revert in the meantime? Thank you!

Sorry for the failure. I've been trying to diagnose it locally but I can't reproduce it on my machine. Not sure what's going on. I'll revert for now.

@jplehr
Copy link
Contributor

jplehr commented Mar 11, 2025

Hi, can this be fixed forward or should we revert in the meantime? Thank you!

Sorry for the failure. I've been trying to diagnose it locally but I can't reproduce it on my machine. Not sure what's going on. I'll revert for now.

No worries, thank you for revert.

llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Mar 11, 2025
@rniwa rniwa restored the add-unretained-call-args-checker branch March 12, 2025 05:35
rniwa added a commit that referenced this pull request Mar 12, 2025
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Mar 12, 2025
rniwa added a commit to rniwa/llvm-project that referenced this pull request Mar 13, 2025
frederik-h pushed a commit to frederik-h/llvm-project that referenced this pull request Mar 18, 2025
rniwa added a commit to rniwa/llvm-project that referenced this pull request Apr 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:static analyzer clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants