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-10-03 20:08:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cvise (Old) and /work/SRC/openSUSE:Factory/.cvise.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cvise" Mon Oct 3 20:08:07 2022 rev:57 rq:1007666 version:2.6.0+git.20221003.09a5d1e Changes: -------- --- /work/SRC/openSUSE:Factory/cvise/cvise.changes 2022-09-14 13:45:20.805949333 +0200 +++ /work/SRC/openSUSE:Factory/.cvise.new.2275/cvise.changes 2022-10-03 20:08:09.245379506 +0200 @@ -1,0 +2,10 @@ +Mon Oct 03 11:16:33 UTC 2022 - mli...@suse.cz + +- Update to version 2.6.0+git.20221003.09a5d1e: + * Bump to 2.6.0. + * Fixed small bugs in class-template-to-class, simplify-dependent-typedef and template-arg-to-int passes + * member-to-global pass failed for members not ending with a ";" + * CMake: Fixed compilation, enabled parallel builds and deactivated unnecessary warnings for MSVC + * GCDABinaryPass: handle when there are no functions + +------------------------------------------------------------------- Old: ---- cvise-2.5.0+git.20220914.93cb973.tar.xz New: ---- cvise-2.6.0+git.20221003.09a5d1e.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cvise.spec ++++++ --- /var/tmp/diff_new_pack.d81HSV/_old 2022-10-03 20:08:09.833380400 +0200 +++ /var/tmp/diff_new_pack.d81HSV/_new 2022-10-03 20:08:09.833380400 +0200 @@ -17,7 +17,7 @@ Name: cvise -Version: 2.5.0+git.20220914.93cb973 +Version: 2.6.0+git.20221003.09a5d1e Release: 0 Summary: Super-parallel Python port of the C-Reduce License: BSD-3-Clause ++++++ _service ++++++ --- /var/tmp/diff_new_pack.d81HSV/_old 2022-10-03 20:08:09.885380479 +0200 +++ /var/tmp/diff_new_pack.d81HSV/_new 2022-10-03 20:08:09.885380479 +0200 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="changesgenerate">enable</param> <param name="filename">cvise</param> - <param name="versionformat">2.5.0+git.%cd.%h</param> + <param name="versionformat">2.6.0+git.%cd.%h</param> </service> <service mode="disabled" name="recompress"> <param name="file">*.tar</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.d81HSV/_old 2022-10-03 20:08:09.905380509 +0200 +++ /var/tmp/diff_new_pack.d81HSV/_new 2022-10-03 20:08:09.909380516 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/marxin/cvise</param> - <param name="changesrevision">3c22a1a5b31b23451987330fea01f9e3dc72c0c4</param></service></servicedata> + <param name="changesrevision">09a5d1eceb3716d972b6078d8ab3398b4b945546</param></service></servicedata> (No newline at EOF) ++++++ cvise-2.5.0+git.20220914.93cb973.tar.xz -> cvise-2.6.0+git.20221003.09a5d1e.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/CMakeLists.txt new/cvise-2.6.0+git.20221003.09a5d1e/CMakeLists.txt --- old/cvise-2.5.0+git.20220914.93cb973/CMakeLists.txt 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/CMakeLists.txt 2022-10-03 13:03:59.000000000 +0200 @@ -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.5.0") +set(cvise_PACKAGE_STRING "cvise 2.6.0") set(cvise_PACKAGE_TARNAME "cvise") set(cvise_PACKAGE_URL "https://github.com/marxin/cvise/") -set(cvise_PACKAGE_VERSION "2.5.0") -set(cvise_VERSION "2.5.0") +set(cvise_PACKAGE_VERSION "2.6.0") +set(cvise_VERSION "2.6.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.5.0+git.20220914.93cb973/clang_delta/CMakeLists.txt new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/CMakeLists.txt --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/CMakeLists.txt 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/CMakeLists.txt 2022-10-03 13:03:59.000000000 +0200 @@ -374,12 +374,21 @@ "/tests/member-to-global/test5.output" "/tests/member-to-global/test6.cc" "/tests/member-to-global/test6.output" + "/tests/member-to-global/test7.cc" + "/tests/member-to-global/test7.output" ) foreach(file IN LISTS SOURCE_FILES) configure_one_file(${file}) endforeach() +if (MSVC) + # Allow big object + add_definitions(/bigobj) + # Enable parallel builds + add_definitions(/MP) +endif (MSVC) + # Add flags for compiling against LLVM. # add_definitions(${LLVM_DEFINITIONS}) @@ -615,6 +624,69 @@ target_link_libraries(clang_delta Version) endif() +if(MSVC) + set(msvc_warning_flags + # Disabled warnings. + -wd4141 # Suppress ''modifier' : used more than once' (because of __forceinline combined with inline) + -wd4146 # Suppress 'unary minus operator applied to unsigned type, result still unsigned' + -wd4244 # Suppress ''argument' : conversion from 'type1' to 'type2', possible loss of data' + -wd4267 # Suppress ''var' : conversion from 'size_t' to 'type', possible loss of data' + -wd4291 # Suppress ''declaration' : no matching operator delete found; memory will not be freed if initialization throws an exception' + -wd4351 # Suppress 'new behavior: elements of array 'array' will be default initialized' + -wd4456 # Suppress 'declaration of 'var' hides local variable' + -wd4457 # Suppress 'declaration of 'var' hides function parameter' + -wd4458 # Suppress 'declaration of 'var' hides class member' + -wd4459 # Suppress 'declaration of 'var' hides global declaration' + -wd4503 # Suppress ''identifier' : decorated name length exceeded, name was truncated' + -wd4624 # Suppress ''derived class' : destructor could not be generated because a base class destructor is inaccessible' + -wd4722 # Suppress 'function' : destructor never returns, potential memory leak + -wd4100 # Suppress 'unreferenced formal parameter' + -wd4127 # Suppress 'conditional expression is constant' + -wd4512 # Suppress 'assignment operator could not be generated' + -wd4505 # Suppress 'unreferenced local function has been removed' + -wd4610 # Suppress '<class> can never be instantiated' + -wd4510 # Suppress 'default constructor could not be generated' + -wd4702 # Suppress 'unreachable code' + -wd4245 # Suppress ''conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch' + -wd4706 # Suppress 'assignment within conditional expression' + -wd4310 # Suppress 'cast truncates constant value' + -wd4701 # Suppress 'potentially uninitialized local variable' + -wd4703 # Suppress 'potentially uninitialized local pointer variable' + -wd4389 # Suppress 'signed/unsigned mismatch' + -wd4611 # Suppress 'interaction between '_setjmp' and C++ object destruction is non-portable' + -wd4805 # Suppress 'unsafe mix of type <type> and type <type> in operation' + -wd4204 # Suppress 'nonstandard extension used : non-constant aggregate initializer' + -wd4577 # Suppress 'noexcept used with no exception handling mode specified; termination on exception is not guaranteed' + -wd4091 # Suppress 'typedef: ignored on left of '' when no variable is declared' + # C4592 is disabled because of false positives in Visual Studio 2015 + # Update 1. Re-evaluate the usefulness of this diagnostic with Update 2. + -wd4592 # Suppress ''var': symbol will be dynamically initialized (implementation limitation) + -wd4319 # Suppress ''operator' : zero extending 'type' to 'type' of greater size' + # C4709 is disabled because of a bug with Visual Studio 2017 as of + # v15.8.8. Re-evaluate the usefulness of this diagnostic when the bug + # is fixed. + -wd4709 # Suppress comma operator within array index expression + -wd4530 # C++ exception handler used, but unwind semantics are not enabled. + + # Ideally, we'd like this warning to be enabled, but even MSVC 2019 doesn't + # support the 'aligned' attribute in the way that clang sources requires (for + # any code that uses the LLVM_ALIGNAS macro), so this is must be disabled to + # avoid unwanted alignment warnings. + -wd4324 # Suppress 'structure was padded due to __declspec(align())' + + # Promoted warnings. + -w14062 # Promote 'enumerator in switch of enum is not handled' to level 1 warning. + + # Promoted warnings to errors. + -we4238 # Promote 'nonstandard extension used : class rvalue used as lvalue' to error. + ) + + foreach(flag ${msvc_warning_flags}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${flag}") + endforeach(flag) +endif(MSVC) + # UndefinedBehaviourSanitizer set(CMAKE_C_FLAGS_UBSAN "-fsanitize=undefined -g" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/ClassTemplateToClass.cpp new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/ClassTemplateToClass.cpp --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/ClassTemplateToClass.cpp 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/ClassTemplateToClass.cpp 2022-10-03 13:03:59.000000000 +0200 @@ -186,10 +186,10 @@ // base initializer A<int> is not presented in the code but visited, // so, we need to make sure locations are valid. SourceLocation LAngleLoc = Loc.getLAngleLoc(); - if (LAngleLoc.isInvalid()) + if (LAngleLoc.isInvalid() || !Rewriter::isRewritable(LAngleLoc)) return true; SourceLocation RAngleLoc = Loc.getRAngleLoc(); - if (RAngleLoc.isInvalid()) + if (RAngleLoc.isInvalid() || !Rewriter::isRewritable(RAngleLoc)) return true; ConsumerInstance->TheRewriter.RemoveText(SourceRange(LAngleLoc, RAngleLoc)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/MemberToGlobal.cpp new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/MemberToGlobal.cpp --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/MemberToGlobal.cpp 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/MemberToGlobal.cpp 2022-10-03 13:03:59.000000000 +0200 @@ -16,6 +16,7 @@ #include "clang/AST/ASTContext.h" #include "clang/Basic/SourceManager.h" +#include "clang/Lex/Lexer.h" #include "TransformationManager.h" @@ -147,7 +148,10 @@ auto RecordBegin = TheRecordDecl->getSourceRange().getBegin(); auto BeginLoc = TheDecl->getSourceRange().getBegin(); - auto EndLoc = RewriteHelper->getEndLocationUntil(TheDecl->getSourceRange().getEnd(), ';'); + auto EndLoc = TheDecl->getSourceRange().getEnd(); + auto EndLoc2 = Lexer::getLocForEndOfToken(EndLoc, 0, *this->SrcManager, this->Context->getLangOpts()); + if (GetText(SourceRange(EndLoc2, EndLoc2)).str() == ";") + EndLoc = EndLoc2; std::string Text = GetText(SourceRange(BeginLoc, EndLoc)).str(); if (auto* VD = dyn_cast<VarDecl>(TheDecl)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/SimplifyDependentTypedef.cpp new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/SimplifyDependentTypedef.cpp --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/SimplifyDependentTypedef.cpp 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/SimplifyDependentTypedef.cpp 2022-10-03 13:03:59.000000000 +0200 @@ -140,12 +140,17 @@ void SimplifyDependentTypedef::rewriteTypedefDecl(void) { - SourceLocation LocStart = TheTypedefDecl->getBeginLoc(); + SourceLocation LocStart = getRealLocation(TheTypedefDecl->getBeginLoc()); + SourceLocation LocEnd = getRealLocation(TheTypedefDecl->getLocation()); - // skip "typedef " - LocStart = LocStart.getLocWithOffset(8); - SourceLocation LocEnd = TheTypedefDecl->getLocation(); - LocEnd = LocEnd.getLocWithOffset(-1); + if (isa<TypedefDecl>(TheTypedefDecl)) { + // skip "typedef " + LocStart = LocStart.getLocWithOffset(8); + LocEnd = LocEnd.getLocWithOffset(-1); + } else { + LocStart = TheTypedefDecl->getTypeSourceInfo()->getTypeLoc().getBeginLoc(); + LocEnd = TheTypedefDecl->getTypeSourceInfo()->getTypeLoc().getEndLoc(); + } std::string ParmName = FirstTmplTypeParmD->getNameAsString(); TransAssert(!ParmName.empty() && "Invalid TypeParmType Name!"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/TemplateArgToInt.cpp new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/TemplateArgToInt.cpp --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/TemplateArgToInt.cpp 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/TemplateArgToInt.cpp 2022-10-03 13:03:59.000000000 +0200 @@ -316,7 +316,7 @@ void TemplateArgToInt::rewriteTemplateArgument() { TransAssert(TheTypeSourceInfo && "NULL TheTypeSourceInfo"); - SourceRange Range = TheTypeSourceInfo->getTypeLoc().getSourceRange(); + SourceRange Range = getRealLocation(TheTypeSourceInfo->getTypeLoc().getSourceRange()); TheRewriter.ReplaceText(Range, "int"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/Transformation.cpp new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/Transformation.cpp --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/Transformation.cpp 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/Transformation.cpp 2022-10-03 13:03:59.000000000 +0200 @@ -1119,13 +1119,18 @@ return isInIncludedFile(S->getBeginLoc()); } -SourceLocation Transformation::getRealLocation(SourceLocation Loc) const +SourceLocation Transformation::getRealLocation(const SourceLocation& Loc) const { if (Loc.isMacroID()) return SrcManager->getExpansionLoc(Loc); return Loc; } +SourceRange Transformation::getRealLocation(const SourceRange& Range) const +{ + return SourceRange(getRealLocation(Range.getBegin()), getRealLocation(Range.getEnd())); +} + bool Transformation::isDeclaringRecordDecl(const RecordDecl *RD) { SourceLocation SemiLoc = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/Transformation.h new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/Transformation.h --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/Transformation.h 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/Transformation.h 2022-10-03 13:03:59.000000000 +0200 @@ -325,7 +325,8 @@ // If the location is a MacroID, get its expansion location. // Otherwise, just return the location. - clang::SourceLocation getRealLocation(clang::SourceLocation Loc) const; + clang::SourceLocation getRealLocation(const clang::SourceLocation& Loc) const; + clang::SourceRange getRealLocation(const clang::SourceRange& Range) const; const std::string Name; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/tests/member-to-global/test7.cc new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/tests/member-to-global/test7.cc --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/tests/member-to-global/test7.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/tests/member-to-global/test7.cc 2022-10-03 13:03:59.000000000 +0200 @@ -0,0 +1,4 @@ +struct A { + void f() { + } +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/tests/member-to-global/test7.output new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/tests/member-to-global/test7.output --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/tests/member-to-global/test7.output 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/tests/member-to-global/test7.output 2022-10-03 13:03:59.000000000 +0200 @@ -0,0 +1,5 @@ +void f() { + } +struct A { + +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/clang_delta/tests/test_clang_delta.py new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/tests/test_clang_delta.py --- old/cvise-2.5.0+git.20220914.93cb973/clang_delta/tests/test_clang_delta.py 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/clang_delta/tests/test_clang_delta.py 2022-10-03 13:03:59.000000000 +0200 @@ -587,6 +587,9 @@ def test_member_to_global_test6(self): self.check_clang_delta('member-to-global/test6.cc', '--transformation=member-to-global --counter=1') + def test_member_to_global_test7(self): + self.check_clang_delta('member-to-global/test7.cc', '--transformation=member-to-global --counter=1') + def test_rename_operator_test1(self): self.check_clang_delta('rename-operator/test1.cc', '--transformation=rename-operator --counter=1') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.5.0+git.20220914.93cb973/cvise/passes/gcdabinary.py new/cvise-2.6.0+git.20221003.09a5d1e/cvise/passes/gcdabinary.py --- old/cvise-2.5.0+git.20220914.93cb973/cvise/passes/gcdabinary.py 2022-09-14 09:02:36.000000000 +0200 +++ new/cvise-2.6.0+git.20221003.09a5d1e/cvise/passes/gcdabinary.py 2022-10-03 13:03:59.000000000 +0200 @@ -25,7 +25,8 @@ functions.append(int(parts[1])) state = BinaryState.create(len(functions)) - state.functions = functions + if state: + state.functions = functions return state except subprocess.SubprocessError as e: logging.warning(f'gcov-dump -p failed: {e}')