git: 9e99ad2987fb - main - devel/llvm-devel: update to 18.1.0rc1

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Tue, 30 Jan 2024 19:46:45 UTC
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9e99ad2987fb946cace87af74011743f0e2d0106

commit 9e99ad2987fb946cace87af74011743f0e2d0106
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2024-01-30 19:46:08 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2024-01-30 19:46:08 +0000

    devel/llvm-devel: update to 18.1.0rc1
    
    Update from 17 to 18 and connect to build.
    
    Upstream has changed versioning so release branches bump the minor
    version to 1 to differentiate them from the pre-branch development
    version.
    
    I've moved the .cmake files into STATIC_LIBS as they aren't useful
    without .a files.  This removes from from the lite flavor (which will
    likely be replaced with subpackages.) [0]
    
    PR:             271821 [0]
---
 devel/llvm18/Makefile                              |  18 +-
 devel/llvm18/Makefile.COMMANDS                     |  14 +-
 devel/llvm18/Makefile.MAN1SRCS                     |   1 -
 devel/llvm18/distinfo                              |  10 +-
 devel/llvm18/files/patch-backport-158f4f30adb4     | 211 -------
 devel/llvm18/files/patch-backport-3ed9e9e3ace6     | 342 -----------
 .../files/patch-clang_lib_Headers_CMakeLists.txt   |  19 +-
 devel/llvm18/pkg-plist                             | 678 ++++++++++++++++-----
 8 files changed, 569 insertions(+), 724 deletions(-)

diff --git a/devel/llvm18/Makefile b/devel/llvm18/Makefile
index 4146803417f6..26fc3333336c 100644
--- a/devel/llvm18/Makefile
+++ b/devel/llvm18/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	llvm
-DISTVERSION=	17.0.6
-PORTREVISION=	4
+DISTVERSION=	18.1.0rc1
+PORTREVISION=	0
 CATEGORIES=	devel lang
 MASTER_SITES=	https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \
 		https://${PRE_}releases.llvm.org/${LLVM_RELEASE}${RCDIR}/
@@ -8,10 +8,6 @@ PKGNAMESUFFIX=	${LLVM_SUFFIX}
 DISTNAME=	llvm-project-${DISTVERSION}.src
 DISTFILES=	llvm-project-${DISTVERSION}.src${EXTRACT_SUFX}
 
-PATCH_SITES=	https://github.com/llvm/llvm-project/commit/
-PATCHFILES+=	llvmorg-18-init-15199-gb9935bb02a50.patch:-p1 # https://github.com/llvm/llvm-project/pull/75748
-PATCHFILES+=	llvmorg-18-init-15680-g966d564e43e6.patch:-p1 # https://github.com/llvm/llvm-project/pull/76185
-
 MAINTAINER=	brooks@FreeBSD.org
 COMMENT=	LLVM and Clang
 WWW=		https://llvm.org/
@@ -159,6 +155,7 @@ COMPILER_RT_DESC=	Sanitizer libraries
 COMPILER_RT_CMAKE_ON=	-DCOMPILER_RT_INSTALL_PATH=${LLVM_PREFIX}/lib/clang/${LLVM_RELEASE}
 COMPILER_RT_PLIST_FILES=${_COMPILER_RT_LIBS}
 DOCS_BUILD_DEPENDS= \
+	${PYTHON_PKGNAMEPREFIX}myst-parser>0:textproc/py-myst-parser@${PY_FLAVOR} \
 	${PYTHON_PKGNAMEPREFIX}sphinx-markdown-tables>=0:textproc/py-sphinx-markdown-tables@${PY_FLAVOR} \
 	${PYTHON_PKGNAMEPREFIX}recommonmark>=0.0.20180530:textproc/py-recommonmark@${PY_FLAVOR}
 DOCS_CONFLICTS_BUILD=	cmark
@@ -256,7 +253,7 @@ EXTRAS_LIBS=	\
 EXTRAS_FILES=	index.js
 EXTRAS_PATTERN=	${EXTRAS_COMMANDS:tW:C/  */|/g}|${EXTRAS_LIBS:tW:C/  */|/g}|${EXTRAS_FILES:tW:C/  */|/g}
 
-FLANG_PATTERN=	${FLANG_COMMANDS:S/^/bin./:tW:C/  */|/g}|flang|libFIR|libFortran|libHLFIR
+FLANG_PATTERN=	${FLANG_COMMANDS:S/^/bin./:tW:C/  */|/g}|flang|libFIR|libFortran|libHLFIR|ISO_Fortran_binding.h
 
 MLIR_PATTERN=	${MLIR_COMMANDS:S/^/bin./:tW:C/  */|/g}|mlir|libMLIR|obj.MLIRCAP
 
@@ -288,7 +285,7 @@ USES+=		gnome
 
 .if ${PORT_OPTIONS:MCOMPILER_RT}
 LLVM_ENABLE_PROJECTS+=	compiler-rt
-COMPILER_RT_PATTERN=	(sanitizer|include.xray|include\/(fuzzer|orc)|profile\/InstrProfData.inc)
+COMPILER_RT_PATTERN=	(sanitizer|include.xray|include\/(fuzzer|orc)|profile\/InstrProfData.inc|profile\/instr_prof_interface.h)
 .endif
 
 .if ${PORT_OPTIONS:MEXTRAS}
@@ -330,7 +327,7 @@ LLVM_ENABLE_PROJECTS+=	openmp
 MAN1SRCS+=	${OPENMP_MAN1SRCS}
 COMMANDS+=	${OPENMP_COMMANDS}
 .endif
-OPENMP_PATTERN=	${OPENMP_COMMANDS:tW:C/  */|/g}|cmake\/openmp|libarcher|lib[ig]*omp|omp.h|ompt.h|ompt-multiplex.h|omp-tools.h
+OPENMP_PATTERN=	${OPENMP_COMMANDS:tW:C/  */|/g}|cmake\/openmp|libarcher|lib[ig]*omp|omp.h|ompt.h|ompt-multiplex.h|ompx.h|omp-tools.h
 
 .if ${PORT_OPTIONS:MPOLLY}
 LLVM_ENABLE_PROJECTS+=	polly
@@ -379,7 +376,7 @@ NATIVE_BACKENDS+=	WebAssembly
 STANDARD_BACKENDS=	${_FREEBSD_BACKENDS} AMDGPU AVR BPF Hexagon Lanai \
 			LoongArch MSP430 NVPTX SystemZ VE WebAssembly XCore
 _BE_LIBS_COMMON=	CodeGen Desc Info
-_BE_INCS_AArch64=	arm_bf16.h arm_sme_draft_spec_subject_to_change.h
+_BE_INCS_AArch64=	arm_bf16.h
 _BE_LIBS_AArch64=	AsmParser Disassembler Utils
 _BE_LIBS_BACKWARDS_AArch64=Exegesis
 _BE_LIBS_AMDGPU=	AsmParser Disassembler TargetMCA Utils
@@ -625,6 +622,7 @@ build-plist:
 	    | ${SORT} >> ${PLIST}.tmp
 	${AWK} '{ \
 	    if ($$0 ~ /lib.lib[a-zA-Z].*\.a$$/ && $$0 !~ /(${BE_PATTERN})$$/) {printf "%%%%STATIC_LIBS%%%%"} \
+	    if ($$0 ~ /.*\.cmake$$/) {printf "%%%%STATIC_LIBS%%%%"} \
 	    if ($$0 ~ /${CLANG_PATTERN}/ && $$0 !~ /(${OPENMP_PATTERN}|${EXTRAS_PATTERN}|libclang_rt|${PYCLANG_PATTERN}|${BE_PATTERN})/) {printf "%%%%CLANG%%%%"} \
 	    if ($$0 ~ /${COMPILER_RT_PATTERN}/) \
 		{printf "%%%%COMPILER_RT%%%%"} \
diff --git a/devel/llvm18/Makefile.COMMANDS b/devel/llvm18/Makefile.COMMANDS
index dfda5e607c18..7fef5dc51c14 100644
--- a/devel/llvm18/Makefile.COMMANDS
+++ b/devel/llvm18/Makefile.COMMANDS
@@ -48,8 +48,8 @@ LLVM_COMMANDS=	\
 		llvm-rc \
 		llvm-readelf \
 		llvm-readobj \
+		llvm-readtapi \
 		llvm-reduce \
-		llvm-remark-size-diff \
 		llvm-remarkutil \
 		llvm-rtdyld \
 		llvm-sim \
@@ -59,7 +59,6 @@ LLVM_COMMANDS=	\
 		llvm-strings \
 		llvm-strip \
 		llvm-symbolizer \
-		llvm-tapi-diff \
 		llvm-tblgen \
 		llvm-tli-checker \
 		llvm-undname \
@@ -133,20 +132,25 @@ LLD_COMMANDS=	\
 LLDB_COMMANDS=	\
 		lldb \
 		lldb-argdumper \
+		lldb-dap \
 		lldb-instr \
-		lldb-server \
-		lldb-vscode
+		lldb-server
 
 MLIR_COMMANDS=	\
+		mlir-cat \
 		mlir-cpu-runner \
 		mlir-lsp-server \
+		mlir-minimal-opt \
+		mlir-minimal-opt-canonicalize \
 		mlir-opt \
 		mlir-pdll \
 		mlir-pdll-lsp-server \
+		mlir-query \
 		mlir-reduce \
 		mlir-tblgen \
 		mlir-translate \
-		tblgen-lsp-server
+		tblgen-lsp-server \
+		tblgen-to-irdl
 
 OPENMP_COMMANDS=	\
 		llvm-omp-device-info \
diff --git a/devel/llvm18/Makefile.MAN1SRCS b/devel/llvm18/Makefile.MAN1SRCS
index ba623f229a00..0d35f37cdcfe 100644
--- a/devel/llvm18/Makefile.MAN1SRCS
+++ b/devel/llvm18/Makefile.MAN1SRCS
@@ -41,7 +41,6 @@ LLVM_MAN1SRCS= \
 	llvm-readelf.1 \
 	llvm-readobj.1 \
 	llvm-reduce.1 \
-	llvm-remark-size-diff.1 \
 	llvm-remarkutil.1 \
 	llvm-size.1 \
 	llvm-stress.1 \
diff --git a/devel/llvm18/distinfo b/devel/llvm18/distinfo
index 9b27c6ea150d..ceb5f4f964ed 100644
--- a/devel/llvm18/distinfo
+++ b/devel/llvm18/distinfo
@@ -1,7 +1,3 @@
-TIMESTAMP = 1701190197
-SHA256 (llvm-project-17.0.6.src.tar.xz) = 58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813
-SIZE (llvm-project-17.0.6.src.tar.xz) = 127838860
-SHA256 (llvmorg-18-init-15199-gb9935bb02a50.patch) = b0805cba765084c7bef426fa1235dd887c61ae0c1fd5e3fad5c8742cdd6ee8b0
-SIZE (llvmorg-18-init-15199-gb9935bb02a50.patch) = 1893
-SHA256 (llvmorg-18-init-15680-g966d564e43e6.patch) = 3abf92d4a788ff2f74fa9fc627a113f04d9fb72cd7e47344a8c4dce06140a163
-SIZE (llvmorg-18-init-15680-g966d564e43e6.patch) = 1297
+TIMESTAMP = 1706631894
+SHA256 (llvm-project-18.1.0rc1.src.tar.xz) = eb1a2751408e4cbb08b152285b23dea00e4a1bc2cd28c0df90fe1ce699671154
+SIZE (llvm-project-18.1.0rc1.src.tar.xz) = 131969632
diff --git a/devel/llvm18/files/patch-backport-158f4f30adb4 b/devel/llvm18/files/patch-backport-158f4f30adb4
deleted file mode 100644
index c7b31bdab7e6..000000000000
--- a/devel/llvm18/files/patch-backport-158f4f30adb4
+++ /dev/null
@@ -1,211 +0,0 @@
-commit 158f4f30adb4bfd390057742a32934e4344e8fd3
-Author: Corentin Jabot <corentinjabot@gmail.com>
-Date:   Mon Aug 21 18:07:43 2023 +0200
-
-    [Clang] Do not change the type of captured vars when checking lambda constraints
-    
-    When checking the constraint of a lambda, we need to respect the constness
-    of the call operator when establishing the type of capture variables.
-    
-    In D124351, this was done by adding const to the captured variable...
-    However, that would change the type of the variable outside of the scope
-    of the lambda, which is clearly not the desired outcome.
-    
-    Instead, to ensure const-correctness, we need to populate
-    a LambdaScopeInfo with the capture variables before checking the
-    constraints of a generic lambda.
-    
-    There is no changelog as I'd like to tentatively propose we backport
-    this change to RC3 as it is a regression introduced in the Clang 17
-    cycle.
-    
-    Fixes #61267
-    
-    Reviewed By: aaron.ballman, #clang-language-wg
-    
-    Differential Revision: https://reviews.llvm.org/D158433
-
-diff --git clang/include/clang/Sema/Sema.h clang/include/clang/Sema/Sema.h
-index c992e8763057..807a52886ccb 100644
---- clang/include/clang/Sema/Sema.h
-+++ clang/include/clang/Sema/Sema.h
-@@ -7343,6 +7343,8 @@ public:
-                                            CXXConversionDecl *Conv,
-                                            Expr *Src);
- 
-+  sema::LambdaScopeInfo *RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator);
-+
-   /// Check whether the given expression is a valid constraint expression.
-   /// A diagnostic is emitted if it is not, false is returned, and
-   /// PossibleNonPrimary will be set to true if the failure might be due to a
-diff --git clang/lib/Sema/SemaConcept.cpp clang/lib/Sema/SemaConcept.cpp
-index f24b549dd2ef..fa3dadf68229 100644
---- clang/lib/Sema/SemaConcept.cpp
-+++ clang/lib/Sema/SemaConcept.cpp
-@@ -13,12 +13,14 @@
- #include "clang/Sema/SemaConcept.h"
- #include "TreeTransform.h"
- #include "clang/AST/ASTLambda.h"
-+#include "clang/AST/DeclCXX.h"
- #include "clang/AST/ExprConcepts.h"
- #include "clang/AST/RecursiveASTVisitor.h"
- #include "clang/Basic/OperatorPrecedence.h"
- #include "clang/Sema/EnterExpressionEvaluationContext.h"
- #include "clang/Sema/Initialization.h"
- #include "clang/Sema/Overload.h"
-+#include "clang/Sema/ScopeInfo.h"
- #include "clang/Sema/Sema.h"
- #include "clang/Sema/SemaDiagnostic.h"
- #include "clang/Sema/SemaInternal.h"
-@@ -540,11 +542,6 @@ bool Sema::addInstantiatedCapturesToScope(
-   auto AddSingleCapture = [&](const ValueDecl *CapturedPattern,
-                               unsigned Index) {
-     ValueDecl *CapturedVar = LambdaClass->getCapture(Index)->getCapturedVar();
--    if (cast<CXXMethodDecl>(Function)->isConst()) {
--      QualType T = CapturedVar->getType();
--      T.addConst();
--      CapturedVar->setType(T);
--    }
-     if (CapturedVar->isInitCapture())
-       Scope.InstantiatedLocal(CapturedPattern, CapturedVar);
-   };
-@@ -714,6 +711,22 @@ bool Sema::CheckFunctionConstraints(const FunctionDecl *FD,
-     Record = const_cast<CXXRecordDecl *>(Method->getParent());
-   }
-   CXXThisScopeRAII ThisScope(*this, Record, ThisQuals, Record != nullptr);
-+
-+  // When checking the constraints of a lambda, we need to restore a
-+  // LambdaScopeInfo populated with correct capture information so that the type
-+  // of a variable referring to a capture is correctly const-adjusted.
-+  FunctionScopeRAII FuncScope(*this);
-+  if (isLambdaCallOperator(FD)) {
-+    LambdaScopeInfo *LSI = RebuildLambdaScopeInfo(
-+        const_cast<CXXMethodDecl *>(cast<CXXMethodDecl>(FD)));
-+    // Constraints are checked from the parent context of the lambda, so we set
-+    // AfterParameterList to false, so that `tryCaptureVariable` finds
-+    // explicit captures in the appropriate context.
-+    LSI->AfterParameterList = false;
-+  } else {
-+    FuncScope.disable();
-+  }
-+
-   return CheckConstraintSatisfaction(
-       FD, {FD->getTrailingRequiresClause()}, *MLTAL,
-       SourceRange(UsageLoc.isValid() ? UsageLoc : FD->getLocation()),
-@@ -902,10 +915,13 @@ bool Sema::CheckInstantiatedFunctionTemplateConstraints(
-   }
-   CXXThisScopeRAII ThisScope(*this, Record, ThisQuals, Record != nullptr);
-   FunctionScopeRAII FuncScope(*this);
--  if (isLambdaCallOperator(Decl))
--    PushLambdaScope();
--  else
-+
-+  if (isLambdaCallOperator(Decl)) {
-+    LambdaScopeInfo *LSI = RebuildLambdaScopeInfo(cast<CXXMethodDecl>(Decl));
-+    LSI->AfterParameterList = false;
-+  } else {
-     FuncScope.disable();
-+  }
- 
-   llvm::SmallVector<Expr *, 1> Converted;
-   return CheckConstraintSatisfaction(Template, TemplateAC, Converted, *MLTAL,
-diff --git clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaDecl.cpp
-index 3925e2a7f338..0d5f696bf040 100644
---- clang/lib/Sema/SemaDecl.cpp
-+++ clang/lib/Sema/SemaDecl.cpp
-@@ -15289,11 +15289,10 @@ Sema::CheckForFunctionRedefinition(FunctionDecl *FD,
-   FD->setInvalidDecl();
- }
- 
--static void RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator,
--                                   Sema &S) {
--  CXXRecordDecl *const LambdaClass = CallOperator->getParent();
-+LambdaScopeInfo *Sema::RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator) {
-+  CXXRecordDecl *LambdaClass = CallOperator->getParent();
- 
--  LambdaScopeInfo *LSI = S.PushLambdaScope();
-+  LambdaScopeInfo *LSI = PushLambdaScope();
-   LSI->CallOperator = CallOperator;
-   LSI->Lambda = LambdaClass;
-   LSI->ReturnType = CallOperator->getReturnType();
-@@ -15317,7 +15316,7 @@ static void RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator,
-     if (C.capturesVariable()) {
-       ValueDecl *VD = C.getCapturedVar();
-       if (VD->isInitCapture())
--        S.CurrentInstantiationScope->InstantiatedLocal(VD, VD);
-+        CurrentInstantiationScope->InstantiatedLocal(VD, VD);
-       const bool ByRef = C.getCaptureKind() == LCK_ByRef;
-       LSI->addCapture(VD, /*IsBlock*/false, ByRef,
-           /*RefersToEnclosingVariableOrCapture*/true, C.getLocation(),
-@@ -15334,6 +15333,7 @@ static void RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator,
-     }
-     ++I;
-   }
-+  return LSI;
- }
- 
- Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D,
-@@ -15437,7 +15437,7 @@ Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D,
-     assert(inTemplateInstantiation() &&
-            "There should be an active template instantiation on the stack "
-            "when instantiating a generic lambda!");
--    RebuildLambdaScopeInfo(cast<CXXMethodDecl>(D), *this);
-+    RebuildLambdaScopeInfo(cast<CXXMethodDecl>(D));
-   } else {
-     // Enter a new function scope
-     PushFunctionScope();
-diff --git clang/lib/Sema/SemaExpr.cpp clang/lib/Sema/SemaExpr.cpp
-index 34284a8d9381..ac6c3ba6b357 100644
---- clang/lib/Sema/SemaExpr.cpp
-+++ clang/lib/Sema/SemaExpr.cpp
-@@ -19722,13 +19722,6 @@ bool Sema::tryCaptureVariable(
-         FunctionScopesIndex == MaxFunctionScopesIndex && VarDC == DC)
-       return true;
- 
--    // When evaluating some attributes (like enable_if) we might refer to a
--    // function parameter appertaining to the same declaration as that
--    // attribute.
--    if (const auto *Parm = dyn_cast<ParmVarDecl>(Var);
--        Parm && Parm->getDeclContext() == DC)
--      return true;
--
-     // Only block literals, captured statements, and lambda expressions can
-     // capture; other scopes don't work.
-     DeclContext *ParentDC =
-@@ -19756,6 +19749,14 @@ bool Sema::tryCaptureVariable(
-       CSI->getCapture(Var).markUsed(BuildAndDiagnose);
-       break;
-     }
-+
-+    // When evaluating some attributes (like enable_if) we might refer to a
-+    // function parameter appertaining to the same declaration as that
-+    // attribute.
-+    if (const auto *Parm = dyn_cast<ParmVarDecl>(Var);
-+        Parm && Parm->getDeclContext() == DC)
-+      return true;
-+
-     // If we are instantiating a generic lambda call operator body,
-     // we do not want to capture new variables.  What was captured
-     // during either a lambdas transformation or initial parsing
-diff --git clang/test/SemaCXX/lambda-capture-type-deduction.cpp clang/test/SemaCXX/lambda-capture-type-deduction.cpp
-index e524d3bc20ab..9855122c9627 100644
---- clang/test/SemaCXX/lambda-capture-type-deduction.cpp
-+++ clang/test/SemaCXX/lambda-capture-type-deduction.cpp
-@@ -246,3 +246,17 @@ void check_params_tpl() {
-     static_assert(is_same<int&, decltype((ap))>);
-   };
- }
-+
-+namespace GH61267 {
-+template <typename> concept C = true;
-+
-+template<typename>
-+void f(int) {
-+  int i;
-+  [i]<C P>(P) {}(0);
-+  i = 4;
-+}
-+
-+void test() { f<int>(0);  }
-+
-+}
diff --git a/devel/llvm18/files/patch-backport-3ed9e9e3ace6 b/devel/llvm18/files/patch-backport-3ed9e9e3ace6
deleted file mode 100644
index 420be920ab90..000000000000
--- a/devel/llvm18/files/patch-backport-3ed9e9e3ace6
+++ /dev/null
@@ -1,342 +0,0 @@
-commit 3ed9e9e3ace6f9ce320cf4e75cffa04a7c7241b5
-Author: Corentin Jabot <corentinjabot@gmail.com>
-Date:   Tue Aug 29 19:53:19 2023 +0200
-
-    [Clang] Add captures to the instantiation scope of lambda call operators
-    
-    Like concepts checking, a trailing return type of a lambda
-    in a dependent context may refer to captures in which case
-    they may need to be rebuilt, so the map of local decl
-    should include captures.
-    
-    This patch reveal a pre-existing issue.
-    `this` is always recomputed by TreeTransform.
-    
-    `*this` (like all captures) only become `const`
-    after the parameter list.
-    
-    However, if try to recompute the value of `this` (in a parameter)
-    during template instantiation while determining the type of the call operator,
-    we will determine  it to be const (unless the lambda is mutable).
-    
-    There is no good way to know at that point that we are in a parameter
-    or not, the easiest/best solution is to transform the type of this.
-    
-    Note that doing so break a handful of HLSL tests.
-    So this is a prototype at this point.
-    
-    Fixes #65067
-    Fixes #63675
-    
-    Reviewed By: erichkeane
-    
-    Differential Revision: https://reviews.llvm.org/D159126
-
-diff --git clang/docs/ReleaseNotes.rst clang/docs/ReleaseNotes.rst
-index 2d0302c399fb..6a3a6bb8ad42 100644
---- clang/docs/ReleaseNotes.rst
-+++ clang/docs/ReleaseNotes.rst
-@@ -270,6 +270,11 @@ Bug Fixes to C++ Support
- - Fix crash when parsing the requires clause of some generic lambdas.
-   (`#64689 <https://github.com/llvm/llvm-project/issues/64689>`_)
- 
-+- Fix crash when the trailing return type of a generic and dependent
-+  lambda refers to an init-capture.
-+  (`#65067 <https://github.com/llvm/llvm-project/issues/65067>`_` and
-+   `#63675 <https://github.com/llvm/llvm-project/issues/63675>`_`)
-+
- Bug Fixes to AST Handling
- ^^^^^^^^^^^^^^^^^^^^^^^^^
- - Fixed an import failure of recursive friend class template.
-diff --git clang/include/clang/Sema/Sema.h clang/include/clang/Sema/Sema.h
-index 1bb096c667e3..566655818a85 100644
---- clang/include/clang/Sema/Sema.h
-+++ clang/include/clang/Sema/Sema.h
-@@ -7365,6 +7365,14 @@ public:
- 
-   sema::LambdaScopeInfo *RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator);
- 
-+  class LambdaScopeForCallOperatorInstantiationRAII
-+      : private FunctionScopeRAII {
-+  public:
-+    LambdaScopeForCallOperatorInstantiationRAII(
-+        Sema &SemasRef, FunctionDecl *FD, MultiLevelTemplateArgumentList MLTAL,
-+        LocalInstantiationScope &Scope);
-+  };
-+
-   /// Check whether the given expression is a valid constraint expression.
-   /// A diagnostic is emitted if it is not, false is returned, and
-   /// PossibleNonPrimary will be set to true if the failure might be due to a
-diff --git clang/lib/Sema/SemaConcept.cpp clang/lib/Sema/SemaConcept.cpp
-index fa3dadf68229..d1fa8e783122 100644
---- clang/lib/Sema/SemaConcept.cpp
-+++ clang/lib/Sema/SemaConcept.cpp
-@@ -600,11 +600,6 @@ bool Sema::SetupConstraintScope(
-       if (addInstantiatedParametersToScope(FD, FromMemTempl->getTemplatedDecl(),
-                                            Scope, MLTAL))
-         return true;
--      // Make sure the captures are also added to the instantiation scope.
--      if (isLambdaCallOperator(FD) &&
--          addInstantiatedCapturesToScope(FD, FromMemTempl->getTemplatedDecl(),
--                                         Scope, MLTAL))
--        return true;
-     }
- 
-     return false;
-@@ -629,11 +624,6 @@ bool Sema::SetupConstraintScope(
-     // child-function.
-     if (addInstantiatedParametersToScope(FD, InstantiatedFrom, Scope, MLTAL))
-       return true;
--
--    // Make sure the captures are also added to the instantiation scope.
--    if (isLambdaCallOperator(FD) &&
--        addInstantiatedCapturesToScope(FD, InstantiatedFrom, Scope, MLTAL))
--      return true;
-   }
- 
-   return false;
-@@ -712,20 +702,8 @@ bool Sema::CheckFunctionConstraints(const FunctionDecl *FD,
-   }
-   CXXThisScopeRAII ThisScope(*this, Record, ThisQuals, Record != nullptr);
- 
--  // When checking the constraints of a lambda, we need to restore a
--  // LambdaScopeInfo populated with correct capture information so that the type
--  // of a variable referring to a capture is correctly const-adjusted.
--  FunctionScopeRAII FuncScope(*this);
--  if (isLambdaCallOperator(FD)) {
--    LambdaScopeInfo *LSI = RebuildLambdaScopeInfo(
--        const_cast<CXXMethodDecl *>(cast<CXXMethodDecl>(FD)));
--    // Constraints are checked from the parent context of the lambda, so we set
--    // AfterParameterList to false, so that `tryCaptureVariable` finds
--    // explicit captures in the appropriate context.
--    LSI->AfterParameterList = false;
--  } else {
--    FuncScope.disable();
--  }
-+  LambdaScopeForCallOperatorInstantiationRAII LambdaScope(
-+      *this, const_cast<FunctionDecl *>(FD), *MLTAL, Scope);
- 
-   return CheckConstraintSatisfaction(
-       FD, {FD->getTrailingRequiresClause()}, *MLTAL,
-@@ -913,15 +891,10 @@ bool Sema::CheckInstantiatedFunctionTemplateConstraints(
-     ThisQuals = Method->getMethodQualifiers();
-     Record = Method->getParent();
-   }
--  CXXThisScopeRAII ThisScope(*this, Record, ThisQuals, Record != nullptr);
--  FunctionScopeRAII FuncScope(*this);
- 
--  if (isLambdaCallOperator(Decl)) {
--    LambdaScopeInfo *LSI = RebuildLambdaScopeInfo(cast<CXXMethodDecl>(Decl));
--    LSI->AfterParameterList = false;
--  } else {
--    FuncScope.disable();
--  }
-+  CXXThisScopeRAII ThisScope(*this, Record, ThisQuals, Record != nullptr);
-+  LambdaScopeForCallOperatorInstantiationRAII LambdaScope(
-+      *this, const_cast<FunctionDecl *>(Decl), *MLTAL, Scope);
- 
-   llvm::SmallVector<Expr *, 1> Converted;
-   return CheckConstraintSatisfaction(Template, TemplateAC, Converted, *MLTAL,
-diff --git clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaDecl.cpp
-index 027c6c3e4222..998060542609 100644
---- clang/lib/Sema/SemaDecl.cpp
-+++ clang/lib/Sema/SemaDecl.cpp
-@@ -15382,6 +15382,10 @@ LambdaScopeInfo *Sema::RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator) {
-   LSI->CallOperator = CallOperator;
-   LSI->Lambda = LambdaClass;
-   LSI->ReturnType = CallOperator->getReturnType();
-+  // This function in calls in situation where the context of the call operator
-+  // is not entered, so we set AfterParameterList to false, so that
-+  // `tryCaptureVariable` finds explicit captures in the appropriate context.
-+  LSI->AfterParameterList = false;
-   const LambdaCaptureDefault LCD = LambdaClass->getLambdaCaptureDefault();
- 
-   if (LCD == LCD_None)
-diff --git clang/lib/Sema/SemaLambda.cpp clang/lib/Sema/SemaLambda.cpp
-index 5256d91a19a0..1702ddb3ee0f 100644
---- clang/lib/Sema/SemaLambda.cpp
-+++ clang/lib/Sema/SemaLambda.cpp
-@@ -20,6 +20,7 @@
- #include "clang/Sema/ScopeInfo.h"
- #include "clang/Sema/SemaInternal.h"
- #include "clang/Sema/SemaLambda.h"
-+#include "clang/Sema/Template.h"
- #include "llvm/ADT/STLExtras.h"
- #include <optional>
- using namespace clang;
-@@ -2254,3 +2255,34 @@ ExprResult Sema::BuildBlockForLambdaConversion(SourceLocation CurrentLocation,
- 
-   return BuildBlock;
- }
-+
-+Sema::LambdaScopeForCallOperatorInstantiationRAII::
-+    LambdaScopeForCallOperatorInstantiationRAII(
-+        Sema &SemasRef, FunctionDecl *FD, MultiLevelTemplateArgumentList MLTAL,
-+        LocalInstantiationScope &Scope)
-+    : FunctionScopeRAII(SemasRef) {
-+  if (!isLambdaCallOperator(FD)) {
-+    FunctionScopeRAII::disable();
-+    return;
-+  }
-+
-+  if (FD->isTemplateInstantiation() && FD->getPrimaryTemplate()) {
-+    FunctionTemplateDecl *PrimaryTemplate = FD->getPrimaryTemplate();
-+    if (const auto *FromMemTempl =
-+            PrimaryTemplate->getInstantiatedFromMemberTemplate()) {
-+      SemasRef.addInstantiatedCapturesToScope(
-+          FD, FromMemTempl->getTemplatedDecl(), Scope, MLTAL);
-+    }
-+  }
-+
-+  else if (FD->getTemplatedKind() == FunctionDecl::TK_MemberSpecialization ||
-+           FD->getTemplatedKind() == FunctionDecl::TK_DependentNonTemplate) {
-+    FunctionDecl *InstantiatedFrom =
-+        FD->getTemplatedKind() == FunctionDecl::TK_MemberSpecialization
-+            ? FD->getInstantiatedFromMemberFunction()
-+            : FD->getInstantiatedFromDecl();
-+    SemasRef.addInstantiatedCapturesToScope(FD, InstantiatedFrom, Scope, MLTAL);
-+  }
-+
-+  SemasRef.RebuildLambdaScopeInfo(cast<CXXMethodDecl>(FD));
-+}
-diff --git clang/lib/Sema/SemaTemplateInstantiateDecl.cpp clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
-index 63f022d5c2ff..37a7d6204413 100644
---- clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
-+++ clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
-@@ -2426,6 +2426,9 @@ Decl *TemplateDeclInstantiator::VisitCXXMethodDecl(
-       cast<Decl>(Owner)->isDefinedOutsideFunctionOrMethod());
-   LocalInstantiationScope Scope(SemaRef, MergeWithParentScope);
- 
-+  Sema::LambdaScopeForCallOperatorInstantiationRAII LambdaScope(
-+      SemaRef, const_cast<CXXMethodDecl *>(D), TemplateArgs, Scope);
-+
-   // Instantiate enclosing template arguments for friends.
-   SmallVector<TemplateParameterList *, 4> TempParamLists;
-   unsigned NumTempParamLists = 0;
-diff --git clang/lib/Sema/TreeTransform.h clang/lib/Sema/TreeTransform.h
-index 7323140bc336..603a23275889 100644
---- clang/lib/Sema/TreeTransform.h
-+++ clang/lib/Sema/TreeTransform.h
-@@ -12325,7 +12325,16 @@ TreeTransform<Derived>::TransformCXXNullPtrLiteralExpr(
- template<typename Derived>
- ExprResult
- TreeTransform<Derived>::TransformCXXThisExpr(CXXThisExpr *E) {
--  QualType T = getSema().getCurrentThisType();
-+
-+  // In lambdas, the qualifiers of the type depends of where in
-+  // the call operator `this` appear, and we do not have a good way to
-+  // rebuild this information, so we transform the type.
-+  //
-+  // In other contexts, the type of `this` may be overrided
-+  // for type deduction, so we need to recompute it.
-+  QualType T = getSema().getCurLambda() ?
-+                   getDerived().TransformType(E->getType())
-+                 : getSema().getCurrentThisType();
- 
-   if (!getDerived().AlwaysRebuild() && T == E->getType()) {
-     // Mark it referenced in the new context regardless.
-diff --git clang/test/SemaCXX/lambda-capture-type-deduction.cpp clang/test/SemaCXX/lambda-capture-type-deduction.cpp
-index 9855122c9627..7bf36a6a9cab 100644
---- clang/test/SemaCXX/lambda-capture-type-deduction.cpp
-+++ clang/test/SemaCXX/lambda-capture-type-deduction.cpp
-@@ -260,3 +260,40 @@ void f(int) {
- void test() { f<int>(0);  }
- 
- }
-+
-+namespace GH65067 {
-+
-+template <typename> class a {
-+public:
-+  template <typename b> void c(b f) { d<int>(f)(0); }
-+  template <typename, typename b> auto d(b f) {
-+    return [f = f](auto arg) -> a<decltype(f(arg))> { return {}; };
-+  }
-+};
-+a<void> e;
-+auto fn1() {
-+  e.c([](int) {});
-+}
-+
-+}
-+
-+namespace GH63675 {
-+
-+template <class _Tp> _Tp __declval();
-+struct __get_tag {
-+  template <class _Tag> void operator()(_Tag);
-+};
-+template <class _ImplFn> struct __basic_sender {
-+  using __tag_t = decltype(__declval<_ImplFn>()(__declval<__get_tag>()));
-+  _ImplFn __impl_;
-+};
-+auto __make_basic_sender = []<class... _Children>(
-+                               _Children... __children) {
-+  return __basic_sender{[... __children = __children]<class _Fun>(
-+                     _Fun __fun) -> decltype(__fun(__children...)) {}};
-+};
-+void __trans_tmp_1() {
-+  __make_basic_sender(__trans_tmp_1);
-+}
-+
-+}
-diff --git clang/test/SemaCXX/this-type-deduction-concept.cpp clang/test/SemaCXX/this-type-deduction-concept.cpp
-new file mode 100644
-index 000000000000..a0c1f605ccef
---- /dev/null
-+++ clang/test/SemaCXX/this-type-deduction-concept.cpp
-@@ -0,0 +1,54 @@
-+
-+// This test case came up in the review of
-+// https://reviews.llvm.org/D159126
-+// when transforming `this` within a
-+// requires expression, we need to make sure
-+// the type of this (and its qualifiers) is respected.
-+namespace D159126 {
-+
-+template <class _Tp>
-+concept __member_begin = requires(_Tp __t) {
-+  __t.begin();
-+};
-+
-+struct {
-+  template <class _Tp>
-+  requires __member_begin<_Tp>
-+  auto operator()(_Tp &&) {}
-+} inline begin;
-+
-+template <class>
-+concept range = requires {
-+  begin;
-+};
-+
-+template <class _Tp>
-+concept __can_compare_begin = requires(_Tp __t) {
-+  begin(__t);
-+};
-+
-+struct {
-+  template <__can_compare_begin _Tp> void operator()(_Tp &&);
-+} empty;
-+
-+template <range _Rp> struct owning_view {
-+  _Rp __r_;
-+public:
-+  void empty() const requires requires { empty(__r_); };
-+};
-+
-+template <class T>
-+concept HasEmpty = requires(T t) {
-+  t.empty();
-+};
-+
-+struct ComparableIters {
-+    void begin();
-+};
-+
-+static_assert(HasEmpty<owning_view<ComparableIters&>>);
-+static_assert(HasEmpty<owning_view<ComparableIters&&>>);
-+static_assert(!HasEmpty<owning_view<const ComparableIters&>>);
-+static_assert(!HasEmpty<owning_view<const ComparableIters&&>>);
-+
-+}
diff --git a/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt b/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt
index ceb6a7de05ea..4a5d995dfb27 100644
--- a/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt
+++ b/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt
@@ -1,6 +1,6 @@
 --- clang/lib/Headers/CMakeLists.txt.orig
 +++ clang/lib/Headers/CMakeLists.txt
-@@ -6,19 +6,10 @@
+@@ -6,34 +6,9 @@
    float.h
    inttypes.h
    iso646.h
@@ -8,10 +8,25 @@
    module.modulemap
 -  stdalign.h
 -  stdarg.h
+-  __stdarg___gnuc_va_list.h
+-  __stdarg___va_copy.h
+-  __stdarg_va_arg.h
+-  __stdarg_va_copy.h
+-  __stdarg_va_list.h
 -  stdatomic.h
 -  stdbool.h
+-  stdckdint.h
 -  stddef.h
-   __stddef_max_align_t.h
+-  __stddef_max_align_t.h
+-  __stddef_null.h
+-  __stddef_nullptr_t.h
+-  __stddef_offsetof.h
+-  __stddef_ptrdiff_t.h
+-  __stddef_rsize_t.h
+-  __stddef_size_t.h
+-  __stddef_unreachable.h
+-  __stddef_wchar_t.h
+-  __stddef_wint_t.h
 -  stdint.h
 -  stdnoreturn.h
    tgmath.h
diff --git a/devel/llvm18/pkg-plist b/devel/llvm18/pkg-plist
index 87f556085907..887f92d1e1ee 100644
--- a/devel/llvm18/pkg-plist
+++ b/devel/llvm18/pkg-plist
@@ -49,8 +49,8 @@ bin/llvm-ranlib%%LLVM_SUFFIX%%
 bin/llvm-rc%%LLVM_SUFFIX%%
 bin/llvm-readelf%%LLVM_SUFFIX%%
 bin/llvm-readobj%%LLVM_SUFFIX%%
+bin/llvm-readtapi%%LLVM_SUFFIX%%
 bin/llvm-reduce%%LLVM_SUFFIX%%
-bin/llvm-remark-size-diff%%LLVM_SUFFIX%%
 bin/llvm-remarkutil%%LLVM_SUFFIX%%
 bin/llvm-rtdyld%%LLVM_SUFFIX%%
 bin/llvm-sim%%LLVM_SUFFIX%%
@@ -60,7 +60,6 @@ bin/llvm-stress%%LLVM_SUFFIX%%
 bin/llvm-strings%%LLVM_SUFFIX%%
 bin/llvm-strip%%LLVM_SUFFIX%%
 bin/llvm-symbolizer%%LLVM_SUFFIX%%
-bin/llvm-tapi-diff%%LLVM_SUFFIX%%
 bin/llvm-tblgen%%LLVM_SUFFIX%%
 bin/llvm-tli-checker%%LLVM_SUFFIX%%
 bin/llvm-undname%%LLVM_SUFFIX%%
@@ -119,18 +118,23 @@ bin/sancov%%LLVM_SUFFIX%%
 %%LLD%%bin/wasm-ld%%LLVM_SUFFIX%%
 %%LLDB%%bin/lldb%%LLVM_SUFFIX%%
 %%LLDB%%bin/lldb-argdumper%%LLVM_SUFFIX%%
+%%LLDB%%bin/lldb-dap%%LLVM_SUFFIX%%
 %%LLDB%%bin/lldb-instr%%LLVM_SUFFIX%%
 %%LLDB%%bin/lldb-server%%LLVM_SUFFIX%%
-%%LLDB%%bin/lldb-vscode%%LLVM_SUFFIX%%
+%%MLIR%%bin/mlir-cat%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-cpu-runner%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-lsp-server%%LLVM_SUFFIX%%
+%%MLIR%%bin/mlir-minimal-opt%%LLVM_SUFFIX%%
+%%MLIR%%bin/mlir-minimal-opt-canonicalize%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-opt%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-pdll%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-pdll-lsp-server%%LLVM_SUFFIX%%
+%%MLIR%%bin/mlir-query%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-reduce%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-tblgen%%LLVM_SUFFIX%%
 %%MLIR%%bin/mlir-translate%%LLVM_SUFFIX%%
 %%MLIR%%bin/tblgen-lsp-server%%LLVM_SUFFIX%%
+%%MLIR%%bin/tblgen-to-irdl%%LLVM_SUFFIX%%
 %%OPENMP%%bin/llvm-omp-device-info%%LLVM_SUFFIX%%
 %%OPENMP%%bin/llvm-omp-kernel-replay%%LLVM_SUFFIX%%
 %%LIT%%bin/FileCheck%%LLVM_SUFFIX%%
@@ -156,6 +160,7 @@ bin/sancov%%LLVM_SUFFIX%%
 %%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/synth.py
 %%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/lldb-argdumper
 %%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/plugins/__init__.py
+%%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/plugins/operating_system.py
 %%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/plugins/scripted_platform.py
 %%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/plugins/scripted_process.py
 %%LLDB%%llvm%%LLVM_SUFFIX%%/%%PYTHON_SITELIBDIR%%/lldb/utils/__init__.py
@@ -211,9 +216,9 @@ llvm%%LLVM_SUFFIX%%/bin/llc
 %%LLD%%llvm%%LLVM_SUFFIX%%/bin/lld-link
 %%LLDB%%llvm%%LLVM_SUFFIX%%/bin/lldb
 %%LLDB%%llvm%%LLVM_SUFFIX%%/bin/lldb-argdumper
+%%LLDB%%llvm%%LLVM_SUFFIX%%/bin/lldb-dap
 %%LLDB%%llvm%%LLVM_SUFFIX%%/bin/lldb-instr
 %%LLDB%%llvm%%LLVM_SUFFIX%%/bin/lldb-server
-%%LLDB%%llvm%%LLVM_SUFFIX%%/bin/lldb-vscode
 llvm%%LLVM_SUFFIX%%/bin/lli
 llvm%%LLVM_SUFFIX%%/bin/llvm-addr2line
 llvm%%LLVM_SUFFIX%%/bin/llvm-ar
@@ -269,8 +274,8 @@ llvm%%LLVM_SUFFIX%%/bin/llvm-ranlib
 llvm%%LLVM_SUFFIX%%/bin/llvm-rc
 llvm%%LLVM_SUFFIX%%/bin/llvm-readelf
 llvm%%LLVM_SUFFIX%%/bin/llvm-readobj
+llvm%%LLVM_SUFFIX%%/bin/llvm-readtapi
 llvm%%LLVM_SUFFIX%%/bin/llvm-reduce
-llvm%%LLVM_SUFFIX%%/bin/llvm-remark-size-diff
 llvm%%LLVM_SUFFIX%%/bin/llvm-remarkutil
 llvm%%LLVM_SUFFIX%%/bin/llvm-rtdyld
 llvm%%LLVM_SUFFIX%%/bin/llvm-sim
@@ -280,18 +285,21 @@ llvm%%LLVM_SUFFIX%%/bin/llvm-stress
 llvm%%LLVM_SUFFIX%%/bin/llvm-strings
 llvm%%LLVM_SUFFIX%%/bin/llvm-strip
 llvm%%LLVM_SUFFIX%%/bin/llvm-symbolizer
-llvm%%LLVM_SUFFIX%%/bin/llvm-tapi-diff
 llvm%%LLVM_SUFFIX%%/bin/llvm-tblgen
 llvm%%LLVM_SUFFIX%%/bin/llvm-tli-checker
 llvm%%LLVM_SUFFIX%%/bin/llvm-undname
 llvm%%LLVM_SUFFIX%%/bin/llvm-windres
 llvm%%LLVM_SUFFIX%%/bin/llvm-xray
+%%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-cat
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-cpu-runner
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-linalg-ods-yaml-gen
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-lsp-server
+%%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-minimal-opt
+%%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-minimal-opt-canonicalize
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-opt
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-pdll
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-pdll-lsp-server
+%%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-query
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-reduce
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-tblgen
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/mlir-translate
@@ -306,6 +314,7 @@ llvm%%LLVM_SUFFIX%%/bin/sanstats
 %%CLANG%%llvm%%LLVM_SUFFIX%%/bin/scan-build-py
 %%CLANG%%llvm%%LLVM_SUFFIX%%/bin/scan-view
 %%MLIR%%llvm%%LLVM_SUFFIX%%/bin/tblgen-lsp-server
+%%MLIR%%llvm%%LLVM_SUFFIX%%/bin/tblgen-to-irdl
 %%FLANG%%llvm%%LLVM_SUFFIX%%/bin/tco
 llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%LLD%%llvm%%LLVM_SUFFIX%%/bin/wasm-ld
@@ -383,6 +392,9 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/BadSignalToKillThreadCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/BoolPointerImplicitConversionCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/BranchCloneCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/CastingThroughVoidCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/ChainedComparisonCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/CopyConstructorInitCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/DanglingHandleCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/DynamicStaticInitializersCheck.h
@@ -394,6 +406,8 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/InaccurateEraseCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/IncDecInConditionsCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/IncorrectEnableIfCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/IncorrectRoundingsCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/InfiniteLoopCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/IntegerDivisionCheck.h
@@ -404,11 +418,13 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/MisplacedPointerArithmeticInAllocCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/MisplacedWideningCastCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/MoveForwardingReferenceCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/MultiLevelImplicitPointerConversionCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/MultipleStatementMacroCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/NoEscapeCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/NotNullTerminatedResultCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/OptionalValueConversionCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/ParentVirtualCallCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/PosixReturnCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/RedundantBranchConditionCheck.h
@@ -445,6 +461,7 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UnhandledSelfAssignmentCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UnsafeFunctionsCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UnusedRaiiCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UnusedReturnValueCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/bugprone/UseAfterMoveCheck.h
@@ -478,6 +495,7 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/NoMallocCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/OwningMemoryCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.h
@@ -520,6 +538,7 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/google/UpgradeGoogletestCaseCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/google/UsingNamespaceDirectiveCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/hicpp/ExceptionBaseclassCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/hicpp/IgnoredRemoveResultCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/hicpp/MultiwayPathsCoveredCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/hicpp/NoAssemblerCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/hicpp/SignedBitwiseCheck.h
@@ -532,9 +551,11 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/llvmlibc/CalleeNamespaceCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/llvmlibc/InlineFunctionDeclCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/llvmlibc/NamespaceConstants.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/misc/ConfusableIdentifierCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/misc/ConstCorrectnessCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/misc/CoroutineHostileRAIICheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/misc/DefinitionsInHeadersCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/misc/HeaderIncludeCycleCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/misc/IncludeCleanerCheck.h
@@ -578,6 +599,7 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UnaryStaticAssertCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseAutoCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseBoolLiteralsCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseConstraintsCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseDefaultMemberInitCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseEmplaceCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseEqualsDefaultCheck.h
@@ -586,6 +608,8 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseNoexceptCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseNullptrCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseOverrideCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseStartsEndsWithCheck.h
+%%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseStdNumbersCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseStdPrintCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseTrailingReturnTypeCheck.h
 %%EXTRAS%%llvm%%LLVM_SUFFIX%%/include/clang-tidy/modernize/UseTransparentFunctorsCheck.h
@@ -605,6 +629,7 @@ llvm%%LLVM_SUFFIX%%/bin/verify-uselistorder
*** 2129 LINES SKIPPED ***