Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package cvise for openSUSE:Factory checked 
in at 2026-09-07 11:33:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cvise (Old)
 and      /work/SRC/openSUSE:Factory/.cvise.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cvise"

Mon Sep  7 11:33:08 2026 rev:88 rq:1375936 version:2.12.0+git.20260806.e477494

Changes:
--------
--- /work/SRC/openSUSE:Factory/cvise/cvise.changes      2026-08-06 
16:26:31.917511074 +0200
+++ /work/SRC/openSUSE:Factory/.cvise.new.1265/cvise.changes    2026-09-07 
11:34:26.884756178 +0200
@@ -1,0 +2,12 @@
+Sat Sep  5 08:46:01 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 2.12.0+git.20260806.e477494:
+  * tests: make test_interleaving_lines_passes reduction unique
+- Drop cvise-test-interleaving-deterministic-reduction.patch: merged
+  upstream
+- Add cvise-llvm23-template-parameter-lists.patch: LLVM 23 dropped
+  getNumTemplateParameterLists()/getTemplateParameterList() for a
+  single ArrayRef getTemplateParameterLists(), which broke the build
+  in Factory
+
+-------------------------------------------------------------------

Old:
----
  cvise-2.12.0+git.20260702.78bba5d.tar.xz
  cvise-test-interleaving-deterministic-reduction.patch

New:
----
  cvise-2.12.0+git.20260806.e477494.tar.xz
  cvise-llvm23-template-parameter-lists.patch

----------(Old B)----------
  Old:  * tests: make test_interleaving_lines_passes reduction unique
- Drop cvise-test-interleaving-deterministic-reduction.patch: merged
  upstream
----------(Old E)----------

----------(New B)----------
  New:  upstream
- Add cvise-llvm23-template-parameter-lists.patch: LLVM 23 dropped
  getNumTemplateParameterLists()/getTemplateParameterList() for a
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cvise.spec ++++++
--- /var/tmp/diff_new_pack.JRNm69/_old  2026-09-07 11:34:27.662783343 +0200
+++ /var/tmp/diff_new_pack.JRNm69/_new  2026-09-07 11:34:27.663783378 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           cvise
-Version:        2.12.0+git.20260702.78bba5d
+Version:        2.12.0+git.20260806.e477494
 Release:        0
 Summary:        Super-parallel Python port of the C-Reduce
 License:        BSD-3-Clause
@@ -25,8 +25,8 @@
 Source:         %{name}-%{version}.tar.xz
 # PATCH-FIX-UPSTREAM cvise-tree-sitter-cpp-aarch64-sign-compare.patch 
[email protected] -- fix -Werror=sign-compare in the bundled tree-sitter-cpp 
scanner on aarch64 (wchar_t is unsigned there), 
https://github.com/tree-sitter/tree-sitter-cpp/issues/338
 Patch1:         cvise-tree-sitter-cpp-aarch64-sign-compare.patch
-# PATCH-FIX-UPSTREAM cvise-test-interleaving-deterministic-reduction.patch 
[email protected] -- test_interleaving_lines_passes has two admissible 
reductions on GCC <= 13 (Leap 16.x) and races between them, 
https://github.com/marxin/cvise/pull/513
-Patch2:         cvise-test-interleaving-deterministic-reduction.patch
+# PATCH-FIX-UPSTREAM cvise-llvm23-template-parameter-lists.patch 
[email protected] -- LLVM 23 replaced 
getNumTemplateParameterLists()/getTemplateParameterList() with a single 
ArrayRef getTemplateParameterLists(), https://github.com/marxin/cvise/pull/515
+Patch2:         cvise-llvm23-template-parameter-lists.patch
 BuildRequires:  astyle
 BuildRequires:  clang-devel
 BuildRequires:  cmake

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.JRNm69/_old  2026-09-07 11:34:27.734785857 +0200
+++ /var/tmp/diff_new_pack.JRNm69/_new  2026-09-07 11:34:27.738785997 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/marxin/cvise</param>
-              <param 
name="changesrevision">78bba5d00ee6a046e77789e016bb55d0a92b8c29</param></service></servicedata>
+              <param 
name="changesrevision">e47749448deb74069c6d23560c5a319e46869980</param></service></servicedata>
 (No newline at EOF)
 

++++++ cvise-2.12.0+git.20260702.78bba5d.tar.xz -> 
cvise-2.12.0+git.20260806.e477494.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cvise-2.12.0+git.20260702.78bba5d/tests/test_cvise.py 
new/cvise-2.12.0+git.20260806.e477494/tests/test_cvise.py
--- old/cvise-2.12.0+git.20260702.78bba5d/tests/test_cvise.py   2026-07-02 
01:42:04.000000000 +0200
+++ new/cvise-2.12.0+git.20260806.e477494/tests/test_cvise.py   2026-08-06 
16:07:34.000000000 +0200
@@ -168,7 +168,18 @@
         """)
 
     proc = start_cvise(
-        ['-c', 'gcc -c test.c && grep foo test.c', '--pass-group-file', 
str(config_path), testcase_path.name],
+        [
+            '-c',
+            # -Werror=implicit-function-declaration makes the reduction below 
unique. Without it, GCC <= 13 also
+            # accepts "int main() { return foo(); }" (an implicit declaration 
is merely a warning there), so which
+            # of the two results we end up with depends on which interleaved 
pass happens to win the race.
+            # Plain -Werror is not usable: it would reject the expected result 
too, whose non-void foo() falls off
+            # the end and trips -Wreturn-type.
+            'gcc -c -Werror=implicit-function-declaration test.c && grep foo 
test.c',
+            '--pass-group-file',
+            str(config_path),
+            testcase_path.name,
+        ],
         tmp_path,
         overridden_subprocess_tmpdir,
     )

++++++ cvise-llvm23-template-parameter-lists.patch ++++++
From: Martin Pluskal <[email protected]>
Subject: clang_delta: adapt to the LLVM 23 template-parameter-list accessors

LLVM 23 replaced the

    unsigned getNumTemplateParameterLists() const
    TemplateParameterList *getTemplateParameterList(unsigned) const

pair on both DeclaratorDecl and TagDecl in clang/AST/Decl.h with a single
ArrayRef accessor

    ArrayRef<TemplateParameterList *> getTemplateParameterLists() const

The old spelling was removed outright rather than deprecated, so clang_delta
fails to compile against LLVM 23 with "no member named
'getNumTemplateParameterLists'". LLVM <= 22 in turn does not have the ArrayRef
accessor and c-vise still supports those, so wrap both spellings in two small
helpers in RewriteUtils.h and route the twelve call sites through them.

--- a/clang_delta/ClassTemplateToClass.cpp
+++ b/clang_delta/ClassTemplateToClass.cpp
@@ -199,8 +199,8 @@
 bool 
ClassTemplateToClassSpecializationTypeRewriteVisitor::VisitCXXMethodDecl(CXXMethodDecl*
 MD) {
   if (auto DCT = MD->getParent()->getDescribedClassTemplate()) {
     if (MD->isOutOfLine() && DCT->getCanonicalDecl() == 
ConsumerInstance->TheClassTemplateDecl) {
-      if (MD->getNumTemplateParameterLists() == 1) {
-        const TemplateParameterList* TPList = MD->getTemplateParameterList(0);
+      if (getNumTemplateParameterListsCompat(MD) == 1) {
+        const TemplateParameterList* TPList = 
getTemplateParameterListCompat(MD, 0);
         SourceLocation LocStart = MD->getBeginLoc();
         ConsumerInstance->removeTemplateAndParameter(LocStart, TPList);
       }
--- a/clang_delta/MoveDefinitionToDeclaration.cpp
+++ b/clang_delta/MoveDefinitionToDeclaration.cpp
@@ -135,8 +135,8 @@
 
     // Update the template parameters name of the class if they are empty
     // This is very likely since unused parameter names gets removed during 
reduction
-    if (MethDef->getNumTemplateParameterLists() == 1) {
-      TemplateParameterList* TPL = MethDef->getTemplateParameterList(0);
+    if (getNumTemplateParameterListsCompat(MethDef) == 1) {
+      TemplateParameterList* TPL = getTemplateParameterListCompat(MethDef, 0);
 
       if (const TemplateParameterList* ClassTPL = 
getDescribedTemplateParams(MethDecl->getParent())) {
         assert(TPL->size() == ClassTPL->size());
@@ -155,8 +155,8 @@
     }
 
     // Removing template lists for classes
-    for (unsigned i = 0; i < MethDef->getNumTemplateParameterLists(); ++i) {
-      TemplateParameterList* TPL = MethDef->getTemplateParameterList(i);
+    for (unsigned i = 0; i < getNumTemplateParameterListsCompat(MethDef); ++i) 
{
+      TemplateParameterList* TPL = getTemplateParameterListCompat(MethDef, i);
       TheRewriter.RemoveText(TPL->getSourceRange());
     }
   }
--- a/clang_delta/ReduceClassTemplateParameter.cpp
+++ b/clang_delta/ReduceClassTemplateParameter.cpp
@@ -129,9 +129,9 @@
   FunctionTemplateDecl *TD = FD->getDescribedFunctionTemplate();
   for (FunctionDecl::redecl_iterator I = FD->redecls_begin(),
        E = FD->redecls_end(); I != E; ++I) {
-    unsigned Num = (*I)->getNumTemplateParameterLists();
+    unsigned Num = getNumTemplateParameterListsCompat(*I);
     for (unsigned Idx = 0; Idx < Num; ++Idx) {
-      const TemplateParameterList *TPList = 
(*I)->getTemplateParameterList(Idx);
+      const TemplateParameterList *TPList = getTemplateParameterListCompat(*I, 
Idx);
       // We don't want to mistakenly rewrite template parameters associated
       // with the FD if FD is a function template.
       if (TD && TPList == TD->getTemplateParameters())
--- a/clang_delta/RewriteUtils.cpp
+++ b/clang_delta/RewriteUtils.cpp
@@ -186,16 +186,16 @@
 
   // Ensure that template parameters are included in the def range
   if (auto* FD = dyn_cast<FunctionDecl>(D)) {
-    if (FD->getNumTemplateParameterLists()) {
-      TemplateParameterList* TPL = FD->getTemplateParameterList(0);
+    if (getNumTemplateParameterListsCompat(FD)) {
+      TemplateParameterList* TPL = getTemplateParameterListCompat(FD, 0);
       Range.setBegin(TPL->getSourceRange().getBegin());
     } else if (auto* T = FD->getDescribedTemplate()) {
       TemplateParameterList* TPL = T->getTemplateParameters();
       Range.setBegin(TPL->getSourceRange().getBegin());
     }
   } else if (auto* TD = dyn_cast<TagDecl>(D)) {
-    if (TD->getNumTemplateParameterLists()) {
-      TemplateParameterList* TPL = TD->getTemplateParameterList(0);
+    if (getNumTemplateParameterListsCompat(TD)) {
+      TemplateParameterList* TPL = getTemplateParameterListCompat(TD, 0);
       Range.setBegin(TPL->getSourceRange().getBegin());
     } else if (auto* T = TD->getDescribedTemplate()) {
       TemplateParameterList* TPL = T->getTemplateParameters();
--- a/clang_delta/RewriteUtils.h
+++ b/clang_delta/RewriteUtils.h
@@ -15,6 +15,7 @@
 #include "clang/Basic/SourceLocation.h"
 #include "clang/AST/NestedNameSpecifier.h"
 #include "clang/AST/DeclTemplate.h"
+#include "llvm/Config/llvm-config.h"
 
 #include "HintsBuilder.h"
 
@@ -55,6 +56,29 @@
   class ValueDecl;
 }
 
+// LLVM 23 replaced the getNumTemplateParameterLists() /
+// getTemplateParameterList(unsigned) pair on DeclaratorDecl and TagDecl with a
+// single ArrayRef accessor, getTemplateParameterLists(). The old spelling was
+// removed rather than deprecated, so wrap both to keep building either way.
+template <typename DeclT>
+inline unsigned getNumTemplateParameterListsCompat(const DeclT *D) {
+#if LLVM_VERSION_MAJOR >= 23
+  return D->getTemplateParameterLists().size();
+#else
+  return D->getNumTemplateParameterLists();
+#endif
+}
+
+template <typename DeclT>
+inline clang::TemplateParameterList *
+getTemplateParameterListCompat(const DeclT *D, unsigned Index) {
+#if LLVM_VERSION_MAJOR >= 23
+  return D->getTemplateParameterLists()[Index];
+#else
+  return D->getTemplateParameterList(Index);
+#endif
+}
+
 class RewriteUtils {
 public:
   static RewriteUtils *GetInstance(clang::Rewriter *RW, HintsBuilder *H);

Reply via email to