From nobody Fri May 29 23:02:13 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gRzQG0BpQz6gF4k for ; Fri, 29 May 2026 23:02:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gRzQF4bRnz3Cft for ; Fri, 29 May 2026 23:02:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780095733; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yaXJY6VUm8tr+/0qLSVBxwkFb+/LMKCjC/fkxGoGbXE=; b=gwbCSxJoQr8xcVawJfP/eA4P1flIV2YdCdqFbUfkagsomqfn5Z7sug9Zt/ScLsv07CwlkZ QJ/6PMuLW3+85KKLyCkOK+hf7NNxUC6tzXwPjBFu6lMSaXfRMwktkLwGgUcJdj9Bzj+2at zpQQS4JGdKhTSXtUItroYqC9UNnEqQn1dHQ1Q1HMbZXk9o5B13F5Med0LuvKiXugTsE7mM GEkVYWiJ2mmZHo4CDXBWYd1gIkPBes4fLeDdfLyoDlEiwC9pF2aw2oczfzK8r3NxZ7RYbH u23nlUkfDD0MmjG39eT2+etQGXudoIQ7mAxmCqp+/TzooH9Fz49GEu/LpUu5EQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1780095733; a=rsa-sha256; cv=none; b=HcuPfq4Sra9g257BqJvn2H07Z5mJ0WolG7ReKMwj3MujWjiaDs8Y1g2W3kDKUM92104Bb8 +O3vWdPS9HO7a4X4s9a5gw+0NQ7xlt2v/XHxTRD7QXFwIK9K3nu16ZCo8Faz0+WNfZIF7Z 4MujnGKJTWGsbhc6JqqTy+sMjHUwmTdVYcc1ZhpYoG8fSrIk90glCHKoQsH2kMwMg0/k9d 9PNfAEoSnrzvVw6eHDWsbAdmsYKz8LO5goI3Jo/cVLO/Co+wqMRxWbISOlpnigLwSgNc65 +NfRbmAd53wjrzcV+G/dp6+H1r+Ci0ZgKHHb+S1Z4ZyGFUTJIdaCQ6DO1rvlgw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780095733; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yaXJY6VUm8tr+/0qLSVBxwkFb+/LMKCjC/fkxGoGbXE=; b=WvydAByLmvKDpBnVgpPcyJ9ylk3xsTn8/m+knTHTUX7wja1EmNwYTTZInyGf138v/HSJyn F2eJJayT74FAGavXrHGNInprE3cuMK0syHPhXQ5SoQZdFI7cZoxc1hQSdYGoPJMYvoTA16 amiMc1OHQZ+4EIUXJf/PNAhIizt3GPeCDOYpXlkcOTFDEo3EdskWDnJnxp0fRzTlVj0di/ NDfsOyErbbUlMxo9Hz0f4HDamlECiQk1o0s7Hpe0QOujp80X3qDApkh4DHTeRpGdTjAO2h th22KAbgwOA4Vya8VjscI0WDGrjNVdW7P95RDbHTTTwSDgHlUP2C0ifo0/WvRA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gRzQF41mkztDT for ; Fri, 29 May 2026 23:02:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 431e2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 29 May 2026 23:02:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 6961a5999c7a - stable/15 - Merge commit 871038759afb from llvm git (by Marco Elver): List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6961a5999c7a7fea39312a62e569781cb108a8b5 Auto-Submitted: auto-generated Date: Fri, 29 May 2026 23:02:13 +0000 Message-Id: <6a1a1af5.431e2.2531e6b4@gitrepo.freebsd.org> The branch stable/15 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=6961a5999c7a7fea39312a62e569781cb108a8b5 commit 6961a5999c7a7fea39312a62e569781cb108a8b5 Author: Dimitry Andric AuthorDate: 2026-05-08 17:59:54 +0000 Commit: Dimitry Andric CommitDate: 2026-05-29 22:57:33 +0000 Merge commit 871038759afb from llvm git (by Marco Elver): Thread Safety Analysis: Fix pointer handling of variables with deprecated attributes (#148974) de10e44b6fe7 ("Thread Safety Analysis: Support warning on passing/returning pointers to guarded variables") added checks for passing pointer to guarded variables. While new features do not necessarily need to support the deprecated attributes (`guarded_var`, and `pt_guarded_var`), we need to ensure that such features do not cause the compiler to crash. As such, code such as this: struct { int v __attribute__((guarded_var)); } p; int *g() { return &p.v; // handleNoMutexHeld() with POK_ReturnPointer } Would crash in debug builds with the assertion in handleNoMutexHeld() triggering. The assertion is meant to capture the fact that this helper should only be used for warnings on variables (which the deprecated attributes only applied to). To fix, the function handleNoMutexHeld() should handle all POK cases that apply to variables explicitly, and produce a best-effort warning. We refrain from introducing new warnings to avoid unnecessary code bloat for deprecated features. Fixes: https://github.com/llvm/llvm-project/issues/140330 This fixes an assertion while building the net/openvswitch port: "Assertion failed: ((POK == POK_VarAccess || POK == POK_VarDereference) && "Only works for variables"), function handleNoMutexHeld, file /usr/src/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp, line 2120.' Reported by: cy PR: 295101, 292067 MFC after: 1 month (cherry picked from commit d9b272a19d39f71665b529860bfed731bcfd99f5) --- .../clang/lib/Sema/AnalysisBasedWarnings.cpp | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp b/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp index ec39bca6039f..ab55cbceeaa8 100644 --- a/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -2116,11 +2116,26 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { void handleNoMutexHeld(const NamedDecl *D, ProtectedOperationKind POK, AccessKind AK, SourceLocation Loc) override { - assert((POK == POK_VarAccess || POK == POK_VarDereference) && - "Only works for variables"); - unsigned DiagID = POK == POK_VarAccess? - diag::warn_variable_requires_any_lock: - diag::warn_var_deref_requires_any_lock; + unsigned DiagID = 0; + switch (POK) { + case POK_VarAccess: + case POK_PassByRef: + case POK_ReturnByRef: + case POK_PassPointer: + case POK_ReturnPointer: + DiagID = diag::warn_variable_requires_any_lock; + break; + case POK_VarDereference: + case POK_PtPassByRef: + case POK_PtReturnByRef: + case POK_PtPassPointer: + case POK_PtReturnPointer: + DiagID = diag::warn_var_deref_requires_any_lock; + break; + case POK_FunctionCall: + llvm_unreachable("Only works for variables"); + break; + } PartialDiagnosticAt Warning(Loc, S.PDiag(DiagID) << D << getLockKindFromAccessKind(AK)); Warnings.emplace_back(std::move(Warning), getNotes());