Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package llvm15 for openSUSE:Factory checked in at 2022-10-11 18:01:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm15 (Old) and /work/SRC/openSUSE:Factory/.llvm15.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm15" Tue Oct 11 18:01:42 2022 rev:2 rq:1008060 version:15.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm15/llvm15.changes 2022-10-04 20:37:28.416894791 +0200 +++ /work/SRC/openSUSE:Factory/.llvm15.new.2275/llvm15.changes 2022-10-11 18:04:06.421944867 +0200 @@ -1,0 +2,8 @@ +Tue Oct 4 21:41:05 UTC 2022 - Aaron Puchert <aaronpuch...@alice-dsl.net> + +- Update to version 15.0.2. + * This release contains bug-fixes for the LLVM 15.0.0 release. + This release is API and ABI compatible with 15.0.0. +- Rebase llvm-do-not-install-static-libraries.patch. + +------------------------------------------------------------------- @@ -5 +13 @@ - * This release contains bug-fixes for the LLVM 15.0.1 release. + * This release contains bug-fixes for the LLVM 15.0.0 release. Old: ---- clang-15.0.1.src.tar.xz clang-docs-15.0.1.src.tar.xz clang-tools-extra-15.0.1.src.tar.xz cmake-15.0.1.src.tar.xz compiler-rt-15.0.1.src.tar.xz libcxx-15.0.1.src.tar.xz libcxxabi-15.0.1.src.tar.xz lld-15.0.1.src.tar.xz lldb-15.0.1.src.tar.xz llvm-15.0.1.src.tar.xz llvm-docs-15.0.1.src.tar.xz openmp-15.0.1.src.tar.xz polly-15.0.1.src.tar.xz New: ---- clang-15.0.2.src.tar.xz clang-docs-15.0.2.src.tar.xz clang-tools-extra-15.0.2.src.tar.xz cmake-15.0.2.src.tar.xz compiler-rt-15.0.2.src.tar.xz libcxx-15.0.2.src.tar.xz libcxxabi-15.0.2.src.tar.xz lld-15.0.2.src.tar.xz lldb-15.0.2.src.tar.xz llvm-15.0.2.src.tar.xz llvm-docs-15.0.2.src.tar.xz openmp-15.0.2.src.tar.xz polly-15.0.2.src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm15.spec ++++++ --- /var/tmp/diff_new_pack.N6MYcK/_old 2022-10-11 18:04:08.029947466 +0200 +++ /var/tmp/diff_new_pack.N6MYcK/_new 2022-10-11 18:04:08.037947479 +0200 @@ -16,14 +16,14 @@ # -%define _relver 15.0.1 +%define _relver 15.0.2 %define _version %_relver%{?_rc:rc%_rc} %define _tagver %_relver%{?_rc:-rc%_rc} %define _minor 15.0 %define _sonum 15 %define _itsme15 1 # Integer version used by update-alternatives -%define _uaver 1501 +%define _uaver 1502 %define _soclang 13 %define _socxx 1 ++++++ clang-15.0.1.src.tar.xz -> clang-15.0.2.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm15/clang-15.0.1.src.tar.xz /work/SRC/openSUSE:Factory/.llvm15.new.2275/clang-15.0.2.src.tar.xz differ: char 15, line 1 ++++++ clang-docs-15.0.1.src.tar.xz -> clang-docs-15.0.2.src.tar.xz ++++++ ++++ 2058 lines of diff (skipped) ++++++ clang-tools-extra-15.0.1.src.tar.xz -> clang-tools-extra-15.0.2.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-15.0.1.src/clang-tidy/misc/ConstCorrectnessCheck.cpp new/clang-tools-extra-15.0.2.src/clang-tidy/misc/ConstCorrectnessCheck.cpp --- old/clang-tools-extra-15.0.1.src/clang-tidy/misc/ConstCorrectnessCheck.cpp 2022-09-20 08:05:50.000000000 +0200 +++ new/clang-tools-extra-15.0.2.src/clang-tidy/misc/ConstCorrectnessCheck.cpp 2022-10-04 11:29:17.000000000 +0200 @@ -12,8 +12,6 @@ #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/ASTMatchers/ASTMatchers.h" -#include <iostream> - using namespace clang::ast_matchers; namespace clang { @@ -132,6 +130,12 @@ VC = VariableCategory::Reference; if (Variable->getType()->isPointerType()) VC = VariableCategory::Pointer; + if (Variable->getType()->isArrayType()) { + if (const auto *ArrayT = dyn_cast<ArrayType>(Variable->getType())) { + if (ArrayT->getElementType()->isPointerType()) + VC = VariableCategory::Pointer; + } + } // Each variable can only be in one category: Value, Pointer, Reference. // Analysis can be controlled for every category. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-15.0.1.src/docs/clang-tidy/checks/misc/const-correctness.rst new/clang-tools-extra-15.0.2.src/docs/clang-tidy/checks/misc/const-correctness.rst --- old/clang-tools-extra-15.0.1.src/docs/clang-tidy/checks/misc/const-correctness.rst 2022-09-20 08:05:50.000000000 +0200 +++ new/clang-tools-extra-15.0.2.src/docs/clang-tidy/checks/misc/const-correctness.rst 2022-10-04 11:29:17.000000000 +0200 @@ -4,12 +4,12 @@ ====================== This check implements detection of local variables which could be declared as -``const``, but are not. Declaring variables as ``const`` is required or recommended by many +``const`` but are not. Declaring variables as ``const`` is required or recommended by many coding guidelines, such as: `CppCoreGuidelines ES.25 <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es25-declare-an-object-const-or-constexpr-unless-you-want-to-modify-its-value-later-on>`_ and `AUTOSAR C++14 Rule A7-1-1 (6.7.1 Specifiers) <https://www.autosar.org/fileadmin/user_upload/standards/adaptive/17-03/AUTOSAR_RS_CPP14Guidelines.pdf>`_. -Please note that this analysis is type-based only. Variables that are not modified +Please note that this check's analysis is type-based only. Variables that are not modified but used to create a non-const handle that might escape the scope are not diagnosed as potential ``const``. @@ -18,25 +18,29 @@ // Declare a variable, which is not ``const`` ... int i = 42; // but use it as read-only. This means that `i` can be declared ``const``. - int result = i * i; + int result = i * i; // Before transformation + int const result = i * i; // After transformation -The check can analyzes values, pointers and references but not (yet) pointees: +The check can analyze values, pointers and references but not (yet) pointees: .. code-block:: c++ // Normal values like built-ins or objects. - int potential_const_int = 42; // 'const int potential_const_int = 42' suggestion. + int potential_const_int = 42; // Before transformation + int const potential_const_int = 42; // After transformation int copy_of_value = potential_const_int; - MyClass could_be_const; // 'const MyClass could_be_const' suggestion; + MyClass could_be_const; // Before transformation + MyClass const could_be_const; // After transformation could_be_const.const_qualified_method(); // References can be declared const as well. - int &reference_value = potential_const_int; // 'const int &reference_value' suggestion. + int &reference_value = potential_const_int; // Before transformation + int const& reference_value = potential_const_int; // After transformation int another_copy = reference_value; // The similar semantics of pointers are not (yet) analyzed. - int *pointer_variable = &potential_const_int; // Not 'const int *pointer_variable' suggestion. + int *pointer_variable = &potential_const_int; // _NO_ 'const int *pointer_variable' suggestion. int last_copy = *pointer_variable; The automatic code transformation is only applied to variables that are declared in single @@ -44,18 +48,20 @@ `readability-isolate-declaration <readability-isolate-declaration.html>`_ first. Note that there is the check -`cppcoreguidelines-avoid-non-const-global-variables <cppcoreguidelines-avoid-non-const-global-variables.html>`_ +`cppcoreguidelines-avoid-non-const-global-variables <../cppcoreguidelines/avoid-non-const-global-variables.html>`_ to enforce ``const`` correctness on all globals. Known Limitations ----------------- +The check does not run on `C` code. + The check will not analyze templated variables or variables that are instantiation dependent. Different instantiations can result in different ``const`` correctness properties and in general it -is not possible to find all instantiations of a template. It might be used differently in an -independent translation unit. +is not possible to find all instantiations of a template. The template might be used differently in +an independent translation unit. -Pointees can not be analyzed for constness yet. The following code is shows this limitation. +Pointees can not be analyzed for constness yet. The following code shows this limitation. .. code-block:: c++ @@ -74,15 +80,35 @@ Options ------- -.. option:: AnalyzeValues (default = 1) +.. option:: AnalyzeValues (default = true) Enable or disable the analysis of ordinary value variables, like ``int i = 42;`` -.. option:: AnalyzeReferences (default = 1) + .. code-block:: c++ + + // Warning + int i = 42; + // No warning + int const i = 42; + + // Warning + int a[] = {42, 42, 42}; + // No warning + int const a[] = {42, 42, 42}; + +.. option:: AnalyzeReferences (default = true) Enable or disable the analysis of reference variables, like ``int &ref = i;`` -.. option:: WarnPointersAsValues (default = 0) + .. code-block:: c++ + + int i = 42; + // Warning + int& ref = i; + // No warning + int const& ref = i; + +.. option:: WarnPointersAsValues (default = false) This option enables the suggestion for ``const`` of the pointer itself. Pointer values have two possibilities to be ``const``, the pointer @@ -90,28 +116,36 @@ .. code-block:: c++ - const int value = 42; - const int * const pointer_variable = &value; + int value = 42; - // The following operations are forbidden for `pointer_variable`. - // *pointer_variable = 44; - // pointer_variable = nullptr; + // Warning + const int * pointer_variable = &value; + // No warning + const int *const pointer_variable = &value; -.. option:: TransformValues (default = 1) +.. option:: TransformValues (default = true) - Provides fixit-hints for value types that automatically adds ``const`` if its a single declaration. + Provides fixit-hints for value types that automatically add ``const`` if its a single declaration. .. code-block:: c++ - // Emits a hint for 'value' to become 'const int value = 42;'. + // Before int value = 42; + // After + int const value = 42; + + // Before + int a[] = {42, 42, 42}; + // After + int const a[] = {42, 42, 42}; + // Result is modified later in its life-time. No diagnostic and fixit hint will be emitted. int result = value * 3; result -= 10; -.. option:: TransformReferences (default = 1) +.. option:: TransformReferences (default = true) - Provides fixit-hints for reference types that automatically adds ``const`` if its a single + Provides fixit-hints for reference types that automatically add ``const`` if its a single declaration. .. code-block:: c++ @@ -120,31 +154,45 @@ // it, it can not be transformed (yet). int value = 42; // The reference 'ref_value' is not modified and can be made 'const int &ref_value = value;' + // Before int &ref_value = value; + // After + int const &ref_value = value; // Result is modified later in its life-time. No diagnostic and fixit hint will be emitted. int result = ref_value * 3; result -= 10; -.. option:: TransformPointersAsValues (default = 0) +.. option:: TransformPointersAsValues (default = false) Provides fixit-hints for pointers if their pointee is not changed. This does not analyze if the value-pointed-to is unchanged! - Requires 'WarnPointersAsValues' to be 1. + Requires 'WarnPointersAsValues' to be 'true'. .. code-block:: c++ int value = 42; - // Emits a hint that 'ptr_value' may become 'int *const ptr_value = &value' because its pointee - // is not changed. + + // Before + const int * pointer_variable = &value; + // After + const int *const pointer_variable = &value; + + // Before + const int * a[] = {&value, &value}; + // After + const int *const a[] = {&value, &value}; + + // Before int *ptr_value = &value; + // After + int *const ptr_value = &value; - int result = 100 * (*ptr_value); - // This modification of the pointee is still allowed and not analyzed/diagnosed. + int result = 100 * (*ptr_value); // Does not modify the pointer itself. + // This modification of the pointee is still allowed and not diagnosed. *ptr_value = 0; // The following pointer may not become a 'int *const'. int *changing_pointee = &value; changing_pointee = &result; - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-15.0.1.src/test/clang-tidy/checkers/misc/const-correctness-pointer-as-values.cpp new/clang-tools-extra-15.0.2.src/test/clang-tidy/checkers/misc/const-correctness-pointer-as-values.cpp --- old/clang-tools-extra-15.0.1.src/test/clang-tidy/checkers/misc/const-correctness-pointer-as-values.cpp 2022-09-20 08:05:50.000000000 +0200 +++ new/clang-tools-extra-15.0.2.src/test/clang-tidy/checkers/misc/const-correctness-pointer-as-values.cpp 2022-10-04 11:29:17.000000000 +0200 @@ -10,4 +10,65 @@ double *p_local0 = &np_local0[1]; // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local0' of type 'double *' can be declared 'const' // CHECK-FIXES: double *const p_local0 + + using doublePtr = double*; + using doubleArray = double[15]; + doubleArray np_local1; + doublePtr p_local1 = &np_local1[0]; + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local1' of type 'doublePtr' (aka 'double *') can be declared 'const' + // CHECK-FIXES: doublePtr const p_local1 +} + +void range_for() { + int np_local0[2] = {1, 2}; + int *p_local0[2] = {&np_local0[0], &np_local0[1]}; + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local0' of type 'int *[2]' can be declared 'const' + // CHECK-FIXES: int *const p_local0[2] + for (const int *p_local1 : p_local0) { + // CHECK-MESSAGES: [[@LINE-1]]:8: warning: variable 'p_local1' of type 'const int *' can be declared 'const' + // CHECK-FIXES: for (const int *const p_local1 : p_local0) + } + + int *p_local2[2] = {nullptr, nullptr}; + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local2' of type 'int *[2]' can be declared 'const' + // CHECK-FIXES: int *const p_local2[2] + for (const auto *con_ptr : p_local2) { + } + +} + +template <typename T> +struct SmallVectorBase { + T data[4]; + void push_back(const T &el) {} + int size() const { return 4; } + T *begin() { return data; } + const T *begin() const { return data; } + T *end() { return data + 4; } + const T *end() const { return data + 4; } +}; + +template <typename T> +struct SmallVector : SmallVectorBase<T> {}; + +template <class T> +void EmitProtocolMethodList(T &&Methods) { + // Note: If the template is uninstantiated the analysis does not figure out, + // that p_local0 could be const. Not sure why, but probably bails because + // some expressions are type-dependent. + SmallVector<const int *> p_local0; + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local0' of type 'SmallVector<const int *>' can be declared 'const' + // CHECK-FIXES: SmallVector<const int *> const p_local0 + SmallVector<const int *> np_local0; + for (const auto *I : Methods) { + if (I == nullptr) + np_local0.push_back(I); + } + p_local0.size(); +} +void instantiate() { + int *p_local0[4] = {nullptr, nullptr, nullptr, nullptr}; + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local0' of type 'int *[4]' can be declared 'const' + // CHECK-FIXES: int *const p_local0[4] + EmitProtocolMethodList(p_local0); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-15.0.1.src/test/clang-tidy/checkers/misc/const-correctness-values.cpp new/clang-tools-extra-15.0.2.src/test/clang-tidy/checkers/misc/const-correctness-values.cpp --- old/clang-tools-extra-15.0.1.src/test/clang-tidy/checkers/misc/const-correctness-values.cpp 2022-09-20 08:05:50.000000000 +0200 +++ new/clang-tools-extra-15.0.2.src/test/clang-tidy/checkers/misc/const-correctness-values.cpp 2022-10-04 11:29:17.000000000 +0200 @@ -526,18 +526,13 @@ // CHECK-FIXES: int const p_local1[2] for (const int &const_ref : p_local1) { } +} - int *p_local2[2] = {&np_local0[0], &np_local0[1]}; - // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local2' of type 'int *[2]' can be declared 'const' - // CHECK-FIXES: int *const p_local2[2] - for (const int *con_ptr : p_local2) { - } - - int *p_local3[2] = {nullptr, nullptr}; - // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local3' of type 'int *[2]' can be declared 'const' - // CHECK-FIXES: int *const p_local3[2] - for (const auto *con_ptr : p_local3) { - } +void arrays_of_pointers_are_ignored() { + int *np_local0[2] = {nullptr, nullptr}; + + using intPtr = int*; + intPtr np_local1[2] = {nullptr, nullptr}; } inline void *operator new(decltype(sizeof(void *)), void *p) { return p; } @@ -908,41 +903,6 @@ sizeof(int[++N]); } -template <typename T> -struct SmallVectorBase { - T data[4]; - void push_back(const T &el) {} - int size() const { return 4; } - T *begin() { return data; } - const T *begin() const { return data; } - T *end() { return data + 4; } - const T *end() const { return data + 4; } -}; - -template <typename T> -struct SmallVector : SmallVectorBase<T> {}; - -template <class T> -void EmitProtocolMethodList(T &&Methods) { - // Note: If the template is uninstantiated the analysis does not figure out, - // that p_local0 could be const. Not sure why, but probably bails because - // some expressions are type-dependent. - SmallVector<const int *> p_local0; - // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local0' of type 'SmallVector<const int *>' can be declared 'const' - // CHECK-FIXES: SmallVector<const int *> const p_local0 - SmallVector<const int *> np_local0; - for (const auto *I : Methods) { - if (I == nullptr) - np_local0.push_back(I); - } - p_local0.size(); -} -void instantiate() { - int *p_local0[4] = {nullptr, nullptr, nullptr, nullptr}; - // CHECK-MESSAGES: [[@LINE-1]]:3: warning: variable 'p_local0' of type 'int *[4]' can be declared 'const' - // CHECK-FIXES: int *const p_local0[4] - EmitProtocolMethodList(p_local0); -} struct base { int member; }; ++++++ cmake-15.0.1.src.tar.xz -> cmake-15.0.2.src.tar.xz ++++++ ++++++ compiler-rt-15.0.1.src.tar.xz -> compiler-rt-15.0.2.src.tar.xz ++++++ ++++++ libcxx-15.0.1.src.tar.xz -> libcxx-15.0.2.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-15.0.1.src/docs/ReleaseNotes.rst new/libcxx-15.0.2.src/docs/ReleaseNotes.rst --- old/libcxx-15.0.1.src/docs/ReleaseNotes.rst 2022-09-20 08:05:50.000000000 +0200 +++ new/libcxx-15.0.2.src/docs/ReleaseNotes.rst 2022-10-04 11:29:17.000000000 +0200 @@ -141,11 +141,11 @@ or upgrade to C++11 or later. It is possible to re-enable ``std::function`` in C++03 by defining ``_LIBCPP_ENABLE_CXX03_FUNCTION``. This option will be removed in LLVM 16. -- ``unary_function`` and ``binary_function`` are no longer available in C++17 and C++20. - They can be re-enabled by defining ``_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION``. - They are also marked as ``[[deprecated]]`` in C++11 and later. To disable deprecation warnings - you have to define ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``. Note that this disables - all deprecation warnings. +- ``unary_function`` and ``binary_function`` are now marked as ``[[deprecated]]`` in C++11 and later. + Deprecation warnings can be disabled by defining ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``, however + this disables all deprecation warnings, not only those for ``unary_function`` and ``binary_function``. + Also note that starting in LLVM 16, ``unary_function`` and ``binary_function`` will be removed entirely + (not only deprecated) in C++17 and above, as mandated by the Standard. - The contents of ``<codecvt>``, ``wstring_convert`` and ``wbuffer_convert`` have been marked as deprecated. To disable deprecation warnings you have to define ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``. Note that this diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-15.0.1.src/include/__config new/libcxx-15.0.2.src/include/__config --- old/libcxx-15.0.1.src/include/__config 2022-09-20 08:05:50.000000000 +0200 +++ new/libcxx-15.0.2.src/include/__config 2022-10-04 11:29:17.000000000 +0200 @@ -22,9 +22,21 @@ # pragma GCC system_header #endif +#if defined(__apple_build_version__) +# define _LIBCPP_COMPILER_CLANG_BASED +# define _LIBCPP_APPLE_CLANG_VER (__apple_build_version__ / 10000) +#elif defined(__clang__) +# define _LIBCPP_COMPILER_CLANG_BASED +# define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__) +#elif defined(__GNUC__) +# define _LIBCPP_COMPILER_GCC +#elif defined(_MSC_VER) +# define _LIBCPP_COMPILER_MSVC +#endif + #ifdef __cplusplus -# define _LIBCPP_VERSION 15001 +# define _LIBCPP_VERSION 15002 # define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y # define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y) @@ -198,18 +210,6 @@ # define __has_include(...) 0 # endif -# if defined(__apple_build_version__) -# define _LIBCPP_COMPILER_CLANG_BASED -# define _LIBCPP_APPLE_CLANG_VER (__apple_build_version__ / 10000) -# elif defined(__clang__) -# define _LIBCPP_COMPILER_CLANG_BASED -# define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__) -# elif defined(__GNUC__) -# define _LIBCPP_COMPILER_GCC -# elif defined(_MSC_VER) -# define _LIBCPP_COMPILER_MSVC -# endif - # if !defined(_LIBCPP_COMPILER_CLANG_BASED) && __cplusplus < 201103L # error "libc++ only supports C++03 with Clang-based compilers. Please enable C++11" # endif @@ -1101,6 +1101,13 @@ # define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION # endif // _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES +// Leave the deprecation notices in by default, but don't remove unary_function and +// binary_function entirely just yet. That way, folks will have one release to act +// on the deprecation warnings. +# ifndef _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION +# define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION +# endif + # if defined(_LIBCPP_ENABLE_CXX20_REMOVED_FEATURES) # define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS # define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_VOID_SPECIALIZATION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-15.0.1.src/include/stdatomic.h new/libcxx-15.0.2.src/include/stdatomic.h --- old/libcxx-15.0.1.src/include/stdatomic.h 2022-09-20 08:05:50.000000000 +0200 +++ new/libcxx-15.0.2.src/include/stdatomic.h 2022-10-04 11:29:17.000000000 +0200 @@ -121,7 +121,7 @@ # pragma GCC system_header #endif -#if _LIBCPP_STD_VER > 20 +#if defined(__cplusplus) && _LIBCPP_STD_VER > 20 #include <atomic> #include <version> @@ -230,6 +230,6 @@ # include_next <stdatomic.h> # endif -#endif // _LIBCPP_STD_VER > 20 +#endif // defined(__cplusplus) && _LIBCPP_STD_VER > 20 #endif // _LIBCPP_STDATOMIC_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-15.0.1.src/test/libcxx/depr/depr.func.adaptor.typedefs/typedefs.depr_in_cxx17.verify.cpp new/libcxx-15.0.2.src/test/libcxx/depr/depr.func.adaptor.typedefs/typedefs.depr_in_cxx17.verify.cpp --- old/libcxx-15.0.1.src/test/libcxx/depr/depr.func.adaptor.typedefs/typedefs.depr_in_cxx17.verify.cpp 2022-09-20 08:05:50.000000000 +0200 +++ new/libcxx-15.0.2.src/test/libcxx/depr/depr.func.adaptor.typedefs/typedefs.depr_in_cxx17.verify.cpp 2022-10-04 11:29:17.000000000 +0200 @@ -19,6 +19,12 @@ #include <utility> #include "test_macros.h" +// This test is disabled in LLVM 15 because we enable the removed +// unary_function and binary_function classes by default, which means +// that we also don't produce deprecation warnings for using their members. + +// expected-no-diagnostics +#if 0 void test_functional() { { @@ -123,3 +129,4 @@ (void)c; } } +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-15.0.1.src/test/libcxx/include_as_c.sh.cpp new/libcxx-15.0.2.src/test/libcxx/include_as_c.sh.cpp --- old/libcxx-15.0.1.src/test/libcxx/include_as_c.sh.cpp 2022-09-20 08:05:50.000000000 +0200 +++ new/libcxx-15.0.2.src/test/libcxx/include_as_c.sh.cpp 2022-10-04 11:29:17.000000000 +0200 @@ -34,6 +34,7 @@ #endif #include <math.h> #include <setjmp.h> +#include <stdatomic.h> #include <stdbool.h> #include <stddef.h> #include <stdint.h> ++++++ libcxxabi-15.0.1.src.tar.xz -> libcxxabi-15.0.2.src.tar.xz ++++++ ++++++ lld-15.0.1.src.tar.xz -> lld-15.0.2.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-15.0.1.src/ELF/Arch/RISCV.cpp new/lld-15.0.2.src/ELF/Arch/RISCV.cpp --- old/lld-15.0.1.src/ELF/Arch/RISCV.cpp 2022-09-20 08:05:50.000000000 +0200 +++ new/lld-15.0.2.src/ELF/Arch/RISCV.cpp 2022-10-04 11:29:17.000000000 +0200 @@ -750,12 +750,13 @@ p += size; // For R_RISCV_ALIGN, we will place `offset` in a location (among NOPs) - // to satisfy the alignment requirement. If `remove` is a multiple of 4, - // it is as if we have skipped some NOPs. Otherwise we are in the middle - // of a 4-byte NOP, and we need to rewrite the NOP sequence. + // to satisfy the alignment requirement. If both `remove` and r.addend + // are multiples of 4, it is as if we have skipped some NOPs. Otherwise + // we are in the middle of a 4-byte NOP, and we need to rewrite the NOP + // sequence. int64_t skip = 0; if (r.type == R_RISCV_ALIGN) { - if (remove % 4 != 0) { + if (remove % 4 || r.addend % 4) { skip = r.addend - remove; int64_t j = 0; for (; j + 4 <= skip; j += 4) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-15.0.1.src/test/ELF/riscv-relax-align-rvc.s new/lld-15.0.2.src/test/ELF/riscv-relax-align-rvc.s --- old/lld-15.0.1.src/test/ELF/riscv-relax-align-rvc.s 2022-09-20 08:05:50.000000000 +0200 +++ new/lld-15.0.2.src/test/ELF/riscv-relax-align-rvc.s 2022-10-04 11:29:17.000000000 +0200 @@ -50,6 +50,12 @@ # CHECK-NEXT: c.addi a0, 8 # CHECK-EMPTY: +# CHECK: <.text2>: +# CHECK-NEXT: addi a0, a1, 1 +# CHECK-NEXT: c.addi a0, 1 +# CHECK-NEXT: c.nop +# CHECK-NEXT: c.addi a0, 2 + .global _start _start: c.addi a0, 1 @@ -73,3 +79,10 @@ c.addi a0, 8 .size d, . - d .size _start, . - _start + +.section .text2,"ax" +.balign 16 + addi a0, a1, 1 + c.addi a0, 1 +.balign 8 + c.addi a0, 2 ++++++ lldb-15.0.1.src.tar.xz -> lldb-15.0.2.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm15/lldb-15.0.1.src.tar.xz /work/SRC/openSUSE:Factory/.llvm15.new.2275/lldb-15.0.2.src.tar.xz differ: char 15, line 1 ++++++ llvm-15.0.1.src.tar.xz -> llvm-15.0.2.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm15/llvm-15.0.1.src.tar.xz /work/SRC/openSUSE:Factory/.llvm15.new.2275/llvm-15.0.2.src.tar.xz differ: char 15, line 1 ++++++ llvm-do-not-install-static-libraries.patch ++++++ --- /var/tmp/diff_new_pack.N6MYcK/_old 2022-10-11 18:04:14.421957799 +0200 +++ /var/tmp/diff_new_pack.N6MYcK/_new 2022-10-11 18:04:14.421957799 +0200 @@ -2,10 +2,10 @@ want after installation. By not copying them in the first place we reduce the disk usage during installation. -Index: clang-15.0.1.src/cmake/modules/AddClang.cmake +Index: clang-15.0.2.src/cmake/modules/AddClang.cmake =================================================================== ---- a/clang-15.0.1.src/cmake/modules/AddClang.cmake -+++ b/clang-15.0.1.src/cmake/modules/AddClang.cmake +--- a/clang-15.0.2.src/cmake/modules/AddClang.cmake ++++ b/clang-15.0.2.src/cmake/modules/AddClang.cmake @@ -106,12 +106,15 @@ macro(add_clang_library name) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN) @@ -68,10 +68,10 @@ endif() if (ARG_MODULE) set_target_properties(${name} PROPERTIES FOLDER "Loadable modules") -Index: lld-15.0.1.src/cmake/modules/AddLLD.cmake +Index: lld-15.0.2.src/cmake/modules/AddLLD.cmake =================================================================== ---- a/lld-15.0.1.src/cmake/modules/AddLLD.cmake -+++ b/lld-15.0.1.src/cmake/modules/AddLLD.cmake +--- a/lld-15.0.2.src/cmake/modules/AddLLD.cmake ++++ b/lld-15.0.2.src/cmake/modules/AddLLD.cmake @@ -17,13 +17,6 @@ macro(add_lld_library name) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) @@ -86,10 +86,10 @@ if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) add_llvm_install_targets(install-${name} DEPENDS ${name} -Index: polly-15.0.1.src/cmake/polly_macros.cmake +Index: polly-15.0.2.src/cmake/polly_macros.cmake =================================================================== ---- a/polly-15.0.1.src/cmake/polly_macros.cmake -+++ b/polly-15.0.1.src/cmake/polly_macros.cmake +--- a/polly-15.0.2.src/cmake/polly_macros.cmake ++++ b/polly-15.0.2.src/cmake/polly_macros.cmake @@ -42,12 +42,14 @@ macro(add_polly_library name) llvm_config(${name} ${LLVM_LINK_COMPONENTS}) endif( LLVM_LINK_COMPONENTS ) @@ -110,10 +110,10 @@ endmacro(add_polly_library) macro(add_polly_loadable_module name) -Index: polly-15.0.1.src/lib/CMakeLists.txt +Index: polly-15.0.2.src/lib/CMakeLists.txt =================================================================== ---- a/polly-15.0.1.src/lib/CMakeLists.txt -+++ b/polly-15.0.1.src/lib/CMakeLists.txt +--- a/polly-15.0.2.src/lib/CMakeLists.txt ++++ b/polly-15.0.2.src/lib/CMakeLists.txt @@ -74,7 +74,7 @@ set_target_properties(PollyCore PROPERTI # It depends on all library it needs, such that with # LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as ++++++ llvm-docs-15.0.1.src.tar.xz -> llvm-docs-15.0.2.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm15/llvm-docs-15.0.1.src.tar.xz /work/SRC/openSUSE:Factory/.llvm15.new.2275/llvm-docs-15.0.2.src.tar.xz differ: char 27, line 1 ++++++ openmp-15.0.1.src.tar.xz -> openmp-15.0.2.src.tar.xz ++++++ ++++++ polly-15.0.1.src.tar.xz -> polly-15.0.2.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm15/polly-15.0.1.src.tar.xz /work/SRC/openSUSE:Factory/.llvm15.new.2275/polly-15.0.2.src.tar.xz differ: char 15, line 1