Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cvise for openSUSE:Factory checked in at 2021-03-05 13:47:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cvise (Old) and /work/SRC/openSUSE:Factory/.cvise.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cvise" Fri Mar 5 13:47:44 2021 rev:26 rq:876737 version:2.2.0+git.20210304.4c7f4cd Changes: -------- --- /work/SRC/openSUSE:Factory/cvise/cvise.changes 2021-01-11 17:17:58.516762841 +0100 +++ /work/SRC/openSUSE:Factory/.cvise.new.2378/cvise.changes 2021-03-05 13:50:12.751891419 +0100 @@ -1,0 +2,12 @@ +Thu Mar 04 12:54:33 UTC 2021 - [email protected] + +- Update to version 2.1.0+git.20210304.4c7f4cd: + * Bump to v2.2.0. + * Do not detect c++ std when --clang-delta-std is used. + * Add check for test case paths. + * Add --clang-delta-preserve-routine cvise option. + * Ensuring test inputs are copied into the build folder #43 + * Adding a 'preserve-routine' flag to clang_delta #43 + * Do not fail fast. + +------------------------------------------------------------------- Old: ---- cvise-2.1.0+git.20210111.972f4ba.tar.xz New: ---- cvise-2.2.0+git.20210304.4c7f4cd.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cvise.spec ++++++ --- /var/tmp/diff_new_pack.nqHDGR/_old 2021-03-05 13:50:13.371891982 +0100 +++ /var/tmp/diff_new_pack.nqHDGR/_new 2021-03-05 13:50:13.375891985 +0100 @@ -17,7 +17,7 @@ Name: cvise -Version: 2.1.0+git.20210111.972f4ba +Version: 2.2.0+git.20210304.4c7f4cd Release: 0 Summary: Super-parallel Python port of the C-Reduce License: BSD-3-Clause ++++++ _service ++++++ --- /var/tmp/diff_new_pack.nqHDGR/_old 2021-03-05 13:50:13.411892019 +0100 +++ /var/tmp/diff_new_pack.nqHDGR/_new 2021-03-05 13:50:13.411892019 +0100 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="changesgenerate">enable</param> <param name="filename">cvise</param> - <param name="versionformat">2.1.0+git.%cd.%h</param> + <param name="versionformat">2.2.0+git.%cd.%h</param> </service> <service mode="disabled" name="recompress"> <param name="file">*.tar</param> ++++++ cvise-2.1.0+git.20210111.972f4ba.tar.xz -> cvise-2.2.0+git.20210304.4c7f4cd.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/.github/workflows/build.yml new/cvise-2.2.0+git.20210304.4c7f4cd/.github/workflows/build.yml --- old/cvise-2.1.0+git.20210111.972f4ba/.github/workflows/build.yml 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/.github/workflows/build.yml 2021-03-04 13:49:32.000000000 +0100 @@ -28,6 +28,7 @@ - llvm: 9 build-type: DEBUG docker: opensuse/leap + fail-fast: false container: ${{ matrix.docker }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/CMakeLists.txt new/cvise-2.2.0+git.20210304.4c7f4cd/CMakeLists.txt --- old/cvise-2.1.0+git.20210111.972f4ba/CMakeLists.txt 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/CMakeLists.txt 2021-03-04 13:49:32.000000000 +0100 @@ -122,11 +122,11 @@ set(cvise_PACKAGE "cvise") set(cvise_PACKAGE_BUGREPORT "https://github.com/marxin/cvise/issues") set(cvise_PACKAGE_NAME "cvise") -set(cvise_PACKAGE_STRING "cvise 2.1.0") +set(cvise_PACKAGE_STRING "cvise 2.2.0") set(cvise_PACKAGE_TARNAME "cvise") set(cvise_PACKAGE_URL "https://github.com/marxin/cvise/") -set(cvise_PACKAGE_VERSION "2.1.0") -set(cvise_VERSION "2.1.0") +set(cvise_PACKAGE_VERSION "2.2.0") +set(cvise_VERSION "2.2.0") set(cvise_LLVM_VERSION "${LLVM_PACKAGE_VERSION}") configure_file("cmake_config.h.in" "${PROJECT_BINARY_DIR}/config.h") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/CMakeLists.txt new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/CMakeLists.txt --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/CMakeLists.txt 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/CMakeLists.txt 2021-03-04 13:49:32.000000000 +0100 @@ -306,6 +306,10 @@ "/tests/replace-function-def-with-decl/macro1.output" "/tests/replace-function-def-with-decl/macro2.c" "/tests/replace-function-def-with-decl/macro2.output" + "/tests/replace-function-def-with-decl/simple.cpp" + "/tests/replace-function-def-with-decl/simple.cpp.preserve_foo.output" + "/tests/replace-function-def-with-decl/simple.cpp.preserve_missing.output" + "/tests/replace-function-def-with-decl/simple.cpp.preserve_quack.output" "/tests/return-void/test1.c" "/tests/return-void/test1.output" "/tests/return-void/test2.c" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/ClangDelta.cpp new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/ClangDelta.cpp --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/ClangDelta.cpp 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/ClangDelta.cpp 2021-03-04 13:49:32.000000000 +0100 @@ -78,6 +78,11 @@ llvm::outs() << "\"string\". Currently, this option works only with "; llvm::outs() << "transformation expression-detector.\n"; + llvm::outs() << " --preserve-routine=<string>: "; + llvm::outs() << "only modify routines that do not match \"string\". "; + llvm::outs() << "Note that currently only replace-function-def-with-decl"; + llvm::outs() << "supports this feature.\n"; + llvm::outs() << " --check-reference=<value>: "; llvm::outs() << "insert code to check if the candidate designated by the "; llvm::outs() << "counter equals to the reference value or not. Currently, "; @@ -169,6 +174,9 @@ else if (!ArgName.compare("replacement")) { TransMgr->setReplacement(ArgValue); } + else if (!ArgName.compare("preserve-routine")) { + TransMgr->setPreserveRoutine(ArgValue); + } else if (!ArgName.compare("check-reference")) { TransMgr->setReferenceValue(ArgValue); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/ReplaceFunctionDefWithDecl.cpp new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/ReplaceFunctionDefWithDecl.cpp --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/ReplaceFunctionDefWithDecl.cpp 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/ReplaceFunctionDefWithDecl.cpp 2021-03-04 13:49:32.000000000 +0100 @@ -314,6 +314,11 @@ void ReplaceFunctionDefWithDecl::addOneFunctionDef(const FunctionDecl *FD) { + // If DoPreserveRoutine is set, and our current routine is the one we're + // preserving, then skip it + if (DoPreserveRoutine && FD->getQualifiedNameAsString() == PreserveRoutine) + return; + ValidInstanceNum++; if (ToCounter > 0) { AllValidFunctionDefs.push_back(FD); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/Transformation.h new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/Transformation.h --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/Transformation.h 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/Transformation.h 2021-03-04 13:49:32.000000000 +0100 @@ -84,6 +84,7 @@ MultipleRewrites(false), ToCounter(-1), DoReplacement(false), + DoPreserveRoutine(false), CheckReference(false), WarnOnCounterOutOfBounds(false) { @@ -106,6 +107,7 @@ MultipleRewrites(MultipleRewritesFlag), ToCounter(-1), DoReplacement(false), + DoPreserveRoutine(false), CheckReference(false), WarnOnCounterOutOfBounds(false) { @@ -144,6 +146,11 @@ DoReplacement = true; } + void setPreserveRoutine(const std::string &Str) { + PreserveRoutine = Str; + DoPreserveRoutine = true; + } + void setReferenceValue(const std::string &Str) { ReferenceValue = Str; CheckReference = true; @@ -343,6 +350,10 @@ std::string Replacement; + bool DoPreserveRoutine; + + std::string PreserveRoutine; + bool CheckReference; std::string ReferenceValue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/TransformationManager.cpp new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/TransformationManager.cpp --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/TransformationManager.cpp 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/TransformationManager.cpp 2021-03-04 13:49:32.000000000 +0100 @@ -225,6 +225,8 @@ // is invoked through ClangInstance->setASTConsumer. if (DoReplacement) CurrentTransformationImpl->setReplacement(Replacement); + if (DoPreserveRoutine) + CurrentTransformationImpl->setPreserveRoutine(PreserveRoutine); if (CheckReference) CurrentTransformationImpl->setReferenceValue(ReferenceValue); @@ -422,6 +424,8 @@ QueryInstanceOnly(false), DoReplacement(false), Replacement(""), + DoPreserveRoutine(false), + PreserveRoutine(""), CheckReference(false), ReferenceValue(""), SetCXXStandard(false), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/TransformationManager.h new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/TransformationManager.h --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/TransformationManager.h 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/TransformationManager.h 2021-03-04 13:49:32.000000000 +0100 @@ -80,6 +80,11 @@ DoReplacement = true; } + void setPreserveRoutine(const std::string &Str) { + PreserveRoutine = Str; + DoPreserveRoutine = true; + } + void setReferenceValue(const std::string &Str) { ReferenceValue = Str; CheckReference = true; @@ -156,6 +161,10 @@ std::string Replacement; + bool DoPreserveRoutine; + + std::string PreserveRoutine; + bool CheckReference; std::string ReferenceValue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp 2021-03-04 13:49:32.000000000 +0100 @@ -0,0 +1,10 @@ +class Moo { +public: + static int foo() { return 10; } + static int bar() { return 10; } +}; + +void quack(void) { + if (Moo::foo()) + ; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_foo.output new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_foo.output --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_foo.output 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_foo.output 2021-03-04 13:49:32.000000000 +0100 @@ -0,0 +1,7 @@ +class Moo { +public: + static int foo() { return 10; } + static int bar() ; +}; + +void quack(void) ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_missing.output new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_missing.output --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_missing.output 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_missing.output 2021-03-04 13:49:32.000000000 +0100 @@ -0,0 +1,7 @@ +class Moo { +public: + static int foo() ; + static int bar() ; +}; + +void quack(void) ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_quack.output new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_quack.output --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_quack.output 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/replace-function-def-with-decl/simple.cpp.preserve_quack.output 2021-03-04 13:49:32.000000000 +0100 @@ -0,0 +1,10 @@ +class Moo { +public: + static int foo() ; + static int bar() ; +}; + +void quack(void) { + if (Moo::foo()) + ; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/test_clang_delta.py new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/test_clang_delta.py --- old/cvise-2.1.0+git.20210111.972f4ba/clang_delta/tests/test_clang_delta.py 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/clang_delta/tests/test_clang_delta.py 2021-03-04 13:49:32.000000000 +0100 @@ -468,6 +468,21 @@ def test_replace_function_def_with_decl_macro2(self): self.check_clang_delta('replace-function-def-with-decl/macro2.c', '--transformation=replace-function-def-with-decl --counter=1 --to-counter=2') + def test_replace_function_def_with_decl_simple_preserve_missing(self): + self.check_clang_delta('replace-function-def-with-decl/simple.cpp', + '--transformation=replace-function-def-with-decl --preserve-routine=blahblahblah --counter=1 --to-counter=3', + output_file='replace-function-def-with-decl/simple.cpp.preserve_missing.output') + + def test_replace_function_def_with_decl_simple_preserve_quack(self): + self.check_clang_delta('replace-function-def-with-decl/simple.cpp', + '--transformation=replace-function-def-with-decl --preserve-routine=quack --counter=1 --to-counter=2', + output_file='replace-function-def-with-decl/simple.cpp.preserve_quack.output') + + def test_replace_function_def_with_decl_simple_preserve_foo(self): + self.check_clang_delta('replace-function-def-with-decl/simple.cpp', + '--transformation=replace-function-def-with-decl --preserve-routine=Moo::foo --counter=1 --to-counter=9999 --warn-on-counter-out-of-bounds', + output_file='replace-function-def-with-decl/simple.cpp.preserve_foo.output') + def test_return_void_test1(self): self.check_clang_delta('return-void/test1.c', '--transformation=return-void --counter=1') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/cvise/cvise.py new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/cvise.py --- old/cvise-2.1.0+git.20210111.972f4ba/cvise/cvise.py 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/cvise.py 2021-03-04 13:49:32.000000000 +0100 @@ -71,7 +71,7 @@ @classmethod def parse_pass_group_dict(cls, pass_group_dict, pass_options, external_programs, remove_pass, - clang_delta_std, not_c, renaming): + clang_delta_std, clang_delta_preserve_routine, not_c, renaming): pass_group = {} removed_passes = set(remove_pass.split(',')) if remove_pass else set() @@ -118,6 +118,7 @@ continue pass_instance.clang_delta_std = clang_delta_std + pass_instance.clang_delta_preserve_routine = clang_delta_preserve_routine pass_group[category].append(pass_instance) return pass_group diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/cvise/passes/clangbinarysearch.py new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/passes/clangbinarysearch.py --- old/cvise-2.1.0+git.20210111.972f4ba/cvise/passes/clangbinarysearch.py 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/passes/clangbinarysearch.py 2021-03-04 13:49:32.000000000 +0100 @@ -30,7 +30,8 @@ self.clang_delta_std = best def new(self, test_case, _=None): - self.detect_best_standard(test_case) + if not self.clang_delta_std: + self.detect_best_standard(test_case) return BinaryState.create(self.count_instances(test_case)) def advance(self, test_case, state): @@ -47,6 +48,8 @@ args = [self.external_programs['clang_delta'], '--query-instances={}'.format(self.arg)] if self.clang_delta_std: args.append('--std={}'.format(self.clang_delta_std)) + if self.clang_delta_preserve_routine: + args.append(f'--preserve-routine="{self.clang_delta_preserve_routine}"') cmd = args + [test_case] try: @@ -83,6 +86,8 @@ '--warn-on-counter-out-of-bounds', '--report-instances-count'] if self.clang_delta_std: args.append('--std={}'.format(self.clang_delta_std)) + if self.clang_delta_preserve_routine: + args.append(f'--preserve-routine="{self.clang_delta_preserve_routine}"') cmd = [self.external_programs['clang_delta']] + args + [test_case] logging.debug(' '.join(cmd)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/cvise/utils/error.py new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/utils/error.py --- old/cvise-2.1.0+git.20210111.972f4ba/cvise/utils/error.py 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/utils/error.py 2021-03-04 13:49:32.000000000 +0100 @@ -46,6 +46,14 @@ return "The specified test case '{}' cannot be {}!".format(self.path, self._get_error_name()) +class FolderInPathTestCaseError(CViseError): + def __init__(self, path): + self.path = path + + def __str__(self): + return f"Test case cannot contain a folder in path: '{self.path}'!" + + class InvalidInterestingnessTestError(InvalidFileError): def __init__(self, path): super().__init__(path, None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/cvise/utils/testing.py new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/utils/testing.py --- old/cvise-2.1.0+git.20210111.972f4ba/cvise/utils/testing.py 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/cvise/utils/testing.py 2021-03-04 13:49:32.000000000 +0100 @@ -13,6 +13,7 @@ from cvise.cvise import CVise from cvise.passes.abstract import PassResult, ProcessEventNotifier, ProcessEventType +from cvise.utils.error import FolderInPathTestCaseError from cvise.utils.error import InsaneTestCaseError from cvise.utils.error import InvalidInterestingnessTestError from cvise.utils.error import InvalidTestCaseError @@ -150,6 +151,8 @@ for test_case in test_cases: self.check_file_permissions(test_case, [os.F_OK, os.R_OK, os.W_OK], InvalidTestCaseError) + if os.path.split(test_case)[0]: + raise FolderInPathTestCaseError(test_case) fullpath = os.path.abspath(test_case) self.test_cases.add(fullpath) self.test_cases_modes[fullpath] = os.stat(fullpath).st_mode diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.1.0+git.20210111.972f4ba/cvise.py new/cvise-2.2.0+git.20210304.4c7f4cd/cvise.py --- old/cvise-2.1.0+git.20210111.972f4ba/cvise.py 2021-01-11 11:52:13.000000000 +0100 +++ new/cvise-2.2.0+git.20210304.4c7f4cd/cvise.py 2021-03-04 13:49:32.000000000 +0100 @@ -116,7 +116,7 @@ try: pass_group_dict = CVise.load_pass_group_file(path) - CVise.parse_pass_group_dict(pass_group_dict, set(), None, None, None, None, None) + CVise.parse_pass_group_dict(pass_group_dict, set(), None, None, None, None, None, None) except MissingPassGroupsError: logging.warning('Skipping file {}. Not valid pass group.'.format(path)) else: @@ -178,6 +178,7 @@ 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-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)') parser.add_argument('--list-passes', action='store_true', help='Print all available passes and exit') @@ -231,7 +232,8 @@ pass_group_dict = CVise.load_pass_group_file(pass_group_file) pass_group = CVise.parse_pass_group_dict(pass_group_dict, pass_options, external_programs, - args.remove_pass, args.clang_delta_std, args.not_c, args.renaming) + args.remove_pass, args.clang_delta_std, + args.clang_delta_preserve_routine, args.not_c, args.renaming) if args.list_passes: logging.info('Available passes:') logging.info('INITIAL PASSES')
