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);
