Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cvise for openSUSE:Factory checked in at 2022-09-09 18:28:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cvise (Old) and /work/SRC/openSUSE:Factory/.cvise.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cvise" Fri Sep 9 18:28:15 2022 rev:53 rq:1002313 version:2.5.0+git.20220909.31fe1f8 Changes: -------- --- /work/SRC/openSUSE:Factory/cvise/cvise.changes 2022-09-01 22:12:02.540387111 +0200 +++ /work/SRC/openSUSE:Factory/.cvise.new.2083/cvise.changes 2022-09-09 18:29:50.061315281 +0200 @@ -1,0 +2,12 @@ +Fri Sep 09 13:03:27 UTC 2022 - mli...@suse.cz + +- Update to version 2.5.0+git.20220909.31fe1f8: + * class-template-to-class transformation was not working with out-of-line method definitions + +------------------------------------------------------------------- +Fri Sep 09 10:20:56 UTC 2022 - mli...@suse.cz + +- Update to version 2.5.0+git.20220909.3c7e8c6: + * Add c++2b C++ standard. + +------------------------------------------------------------------- Old: ---- cvise-2.5.0+git.20220831.cf6747b.tar.xz New: ---- cvise-2.5.0+git.20220909.31fe1f8.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cvise.spec ++++++ --- /var/tmp/diff_new_pack.xe9ELE/_old 2022-09-09 18:29:50.477316348 +0200 +++ /var/tmp/diff_new_pack.xe9ELE/_new 2022-09-09 18:29:50.481316357 +0200 @@ -17,7 +17,7 @@ Name: cvise -Version: 2.5.0+git.20220831.cf6747b +Version: 2.5.0+git.20220909.31fe1f8 Release: 0 Summary: Super-parallel Python port of the C-Reduce License: BSD-3-Clause ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.xe9ELE/_old 2022-09-09 18:29:50.529316480 +0200 +++ /var/tmp/diff_new_pack.xe9ELE/_new 2022-09-09 18:29:50.533316491 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/marxin/cvise</param> - <param name="changesrevision">cf6747b005c6933d05d8f928cd9bb59aa99cacb6</param></service></servicedata> + <param name="changesrevision">d825c80c973efb097258cc5fe3baac9bf8928b9b</param></service></servicedata> (No newline at EOF) ++++++ cvise-2.5.0+git.20220831.cf6747b.tar.xz -> cvise-2.5.0+git.20220909.31fe1f8.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/CMakeLists.txt new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/CMakeLists.txt --- old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/CMakeLists.txt 2022-08-31 13:28:52.000000000 +0200 +++ new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/CMakeLists.txt 2022-09-09 15:02:16.000000000 +0200 @@ -55,6 +55,8 @@ "/tests/class-to-struct/class-to-struct1.C" "/tests/class-to-struct/class-to-struct1.output" "/tests/class-to-struct/class-to-struct-forward.C" + "/tests/class-template-to-class/test1.cc" + "/tests/class-template-to-class/test1.output" "/tests/copy-propagation/copy1.cpp" "/tests/copy-propagation/copy1.output" "/tests/copy-propagation/copy2.cpp" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/ClassTemplateToClass.cpp new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/ClassTemplateToClass.cpp --- old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/ClassTemplateToClass.cpp 2022-08-31 13:28:52.000000000 +0200 +++ new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/ClassTemplateToClass.cpp 2022-09-09 15:02:16.000000000 +0200 @@ -55,6 +55,7 @@ { } bool VisitTemplateSpecializationTypeLoc(TemplateSpecializationTypeLoc Loc); + bool VisitCXXMethodDecl(CXXMethodDecl* MD); private: @@ -195,6 +196,21 @@ return true; } +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); + SourceLocation LocStart = MD->getBeginLoc(); + ConsumerInstance->removeTemplateAndParameter(LocStart, TPList); + } + } + } + + return true; +} + + void ClassTemplateToClass::Initialize(ASTContext &context) { Transformation::Initialize(context); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/TransformationManager.cpp new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/TransformationManager.cpp --- old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/TransformationManager.cpp 2022-08-31 13:28:52.000000000 +0200 +++ new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/TransformationManager.cpp 2022-09-09 15:02:16.000000000 +0200 @@ -127,6 +127,10 @@ #else LSTD = LangStandard::Kind::lang_cxx20; #endif +#if LLVM_VERSION_MAJOR >= 14 + else if (!CXXStandard.compare("c++2b")) + LSTD = LangStandard::Kind::lang_cxx2b; +#endif else { ErrorMsg = "Can't parse CXXStandard option argument!"; return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/tests/class-template-to-class/test1.cc new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/tests/class-template-to-class/test1.cc --- old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/tests/class-template-to-class/test1.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/tests/class-template-to-class/test1.cc 2022-09-09 15:02:16.000000000 +0200 @@ -0,0 +1,11 @@ +template <class> class j { +public: + void func(); + + template <class c> + void func2(c p); +}; + +template <class m> void j<m>::func() { + return *this; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/tests/class-template-to-class/test1.output new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/tests/class-template-to-class/test1.output --- old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/tests/class-template-to-class/test1.output 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/tests/class-template-to-class/test1.output 2022-09-09 15:02:16.000000000 +0200 @@ -0,0 +1,11 @@ + class j { +public: + void func(); + + template <class c> + void func2(c p); +}; + + void j::func() { + return *this; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/tests/test_clang_delta.py new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/tests/test_clang_delta.py --- old/cvise-2.5.0+git.20220831.cf6747b/clang_delta/tests/test_clang_delta.py 2022-08-31 13:28:52.000000000 +0200 +++ new/cvise-2.5.0+git.20220909.31fe1f8/clang_delta/tests/test_clang_delta.py 2022-09-09 15:02:16.000000000 +0200 @@ -550,3 +550,6 @@ def test_class_to_struct_forward(self): self.check_query_instances('class-to-struct/class-to-struct-forward.C', '--query-instances=class-to-struct', 'Available transformation instances: 0') + + def test_class_template_to_class(self): + self.check_clang_delta('class-template-to-class/test1.cc', '--transformation=class-template-to-class --counter=1') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220831.cf6747b/cvise.py new/cvise-2.5.0+git.20220909.31fe1f8/cvise.py --- old/cvise-2.5.0+git.20220831.cf6747b/cvise.py 2022-08-31 13:28:52.000000000 +0200 +++ new/cvise-2.5.0+git.20220909.31fe1f8/cvise.py 2022-09-09 15:02:16.000000000 +0200 @@ -186,7 +186,7 @@ passes_group = parser.add_mutually_exclusive_group() passes_group.add_argument('--pass-group', type=str, choices=get_available_pass_groups(), help='Set of passes used during the reduction') passes_group.add_argument('--pass-group-file', type=str, help='JSON file defining a custom pass group') - parser.add_argument('--clang-delta-std', type=str, choices=['c++98', 'c++11', 'c++14', 'c++17', 'c++20'], help='Specify clang_delta C++ standard, it can rapidly speed up all clang_delta passes') + parser.add_argument('--clang-delta-std', type=str, choices=['c++98', 'c++11', 'c++14', 'c++17', 'c++20', 'c++2b'], help='Specify clang_delta C++ standard, it can rapidly speed up all clang_delta passes') parser.add_argument('--clang-delta-preserve-routine', type=str, help='Preserve the given function in replace-function-def-with-decl clang delta pass') parser.add_argument('--not-c', action='store_true', help="Don't run passes that are specific to C and C++, use this mode for reducing other languages") parser.add_argument('--renaming', action='store_true', help='Enable all renaming passes (that are disabled by default)')