Hello community, here is the log from the commit of package llvm4 for openSUSE:Factory checked in at 2017-07-04 13:32:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm4 (Old) and /work/SRC/openSUSE:Factory/.llvm4.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "llvm4" Tue Jul 4 13:32:29 2017 rev:5 rq:506237 version:4.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm4/lldb4.changes 2017-05-27 13:08:52.392022137 +0200 +++ /work/SRC/openSUSE:Factory/.llvm4.new/lldb4.changes 2017-07-04 13:32:32.265683177 +0200 @@ -1,0 +2,6 @@ +Mon Jun 26 09:10:25 UTC 2017 - idonmez@suse.com + +- Update to version 4.0.1 + * No changelog upstream + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/llvm4/llvm4.changes 2017-06-05 18:49:20.881625185 +0200 +++ /work/SRC/openSUSE:Factory/.llvm4.new/llvm4.changes 2017-07-04 13:32:32.901593632 +0200 @@ -1,0 +2,6 @@ +Mon Jun 26 09:10:01 UTC 2017 - idonmez@suse.com + +- Update to version 4.0.1 + * Minor bugfixes + +------------------------------------------------------------------- Old: ---- cfe-4.0.0.src.tar.xz cfe-docs-4.0.0.src.tar.xz clang-tools-extra-4.0.0.src.tar.xz compiler-rt-4.0.0.src.tar.xz libcxx-4.0.0.src.tar.xz libcxxabi-4.0.0.src.tar.xz lldb-4.0.0.src.tar.xz llvm-4.0.0.src.tar.xz llvm-docs-4.0.0.src.tar.xz openmp-4.0.0.src.tar.xz New: ---- cfe-4.0.1.src.tar.xz cfe-docs-4.0.1.src.tar.xz clang-tools-extra-4.0.1.src.tar.xz compiler-rt-4.0.1.src.tar.xz libcxx-4.0.1.src.tar.xz libcxxabi-4.0.1.src.tar.xz lldb-4.0.1.src.tar.xz llvm-4.0.1.src.tar.xz llvm-docs-4.0.1.src.tar.xz openmp-4.0.1.src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lldb4.spec ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:36.105142523 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:36.109141960 +0200 @@ -16,12 +16,12 @@ # -%define _llvm_revision 297347 +%define _llvm_revision 305264 %define _sonum 4 # Integer version used by update-alternatives -%define _uaver 400 +%define _uaver 401 Name: lldb4 -Version: 4.0.0 +Version: 4.0.1 Release: 0 Summary: Software debugger built using LLVM libraries License: NCSA ++++++ llvm4.spec ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:36.141137455 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:36.141137455 +0200 @@ -16,13 +16,13 @@ # -%define _relver 4.0.0 +%define _relver 4.0.1 %define _minor 4.0 %define _sonum 4 # Integer version used by update-alternatives -%define _uaver 400 +%define _uaver 401 %define _socxx 1 -%define _revsn 297347 +%define _revsn 305264 %ifarch x86_64 %bcond_without libcxx %else @@ -38,7 +38,7 @@ %bcond_with valgrind %bcond_without pyclang Name: llvm4 -Version: 4.0.0 +Version: 4.0.1 Release: 0 Summary: Low Level Virtual Machine License: NCSA @@ -516,14 +516,14 @@ # Docs are prebuilt due to sphinx dependency # -# pushd llvm-4.0.0.src/docs +# pushd llvm-4.0.1.src/docs # make -f Makefile.sphinx man html # popd -# pushd cfe-4.0.0.src/docs +# pushd cfe-4.0.1.src/docs # make -f Makefile.sphinx man html # popd -# tar cvJf llvm-docs-4.0.0.src.tar.xz llvm-4.0.0.src/docs/_build/{man,html} -# tar cvJf cfe-docs-4.0.0.src.tar.xz cfe-4.0.0.src/docs/_build/{man,html} +# tar cvJf llvm-docs-4.0.1.src.tar.xz llvm-4.0.1.src/docs/_build/{man,html} +# tar cvJf cfe-docs-4.0.1.src.tar.xz cfe-4.0.1.src/docs/_build/{man,html} # Build man/html pages pushd docs ++++++ aarch64-disable-memorytest.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:36.185131260 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:36.185131260 +0200 @@ -1,7 +1,7 @@ -Index: llvm-4.0.0.src/unittests/Support/CMakeLists.txt +Index: llvm-4.0.1.src/unittests/Support/CMakeLists.txt =================================================================== ---- llvm-4.0.0.src.orig/unittests/Support/CMakeLists.txt -+++ llvm-4.0.0.src/unittests/Support/CMakeLists.txt +--- llvm-4.0.1.src.orig/unittests/Support/CMakeLists.txt ++++ llvm-4.0.1.src/unittests/Support/CMakeLists.txt @@ -31,7 +31,6 @@ add_llvm_unittest(SupportTests ManagedStatic.cpp MathExtrasTest.cpp ++++++ arm_suse_support.diff ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:36.197129570 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:36.201129007 +0200 @@ -1,5 +1,5 @@ ---- cfe-4.0.0.src/lib/Driver/ToolChains.cpp -+++ cfe-4.0.0.src/lib/Driver/ToolChains.cpp +--- cfe-4.0.1.src/lib/Driver/ToolChains.cpp ++++ cfe-4.0.1.src/lib/Driver/ToolChains.cpp @@ -1427,7 +1427,9 @@ bool Generic_GCC::GCCInstallationDetecto static const char *const ARMTriples[] = {"arm-linux-gnueabi", "arm-linux-androideabi"}; ++++++ assume-opensuse.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:36.217126754 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:36.217126754 +0200 @@ -1,7 +1,7 @@ -Index: cfe-4.0.0.src/lib/Driver/Distro.cpp +Index: cfe-4.0.1.src/lib/Driver/Distro.cpp =================================================================== ---- cfe-4.0.0.src/lib/Driver/Distro.cpp -+++ cfe-4.0.0.src/lib/Driver/Distro.cpp +--- cfe-4.0.1.src/lib/Driver/Distro.cpp ++++ cfe-4.0.1.src/lib/Driver/Distro.cpp @@ -18,6 +18,8 @@ using namespace clang::driver; using namespace clang; @@ -20,10 +20,10 @@ } Distro::Distro(vfs::FileSystem &VFS) : DistroVal(DetectDistro(VFS)) {} -Index: cfe-4.0.0.src/unittests/Driver/CMakeLists.txt +Index: cfe-4.0.1.src/unittests/Driver/CMakeLists.txt =================================================================== ---- cfe-4.0.0.src/unittests/Driver/CMakeLists.txt -+++ cfe-4.0.0.src/unittests/Driver/CMakeLists.txt +--- cfe-4.0.1.src/unittests/Driver/CMakeLists.txt ++++ cfe-4.0.1.src/unittests/Driver/CMakeLists.txt @@ -3,7 +3,6 @@ set(LLVM_LINK_COMPONENTS ) ++++++ cfe-4.0.0.src.tar.xz -> cfe-4.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm4/cfe-4.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm4.new/cfe-4.0.1.src.tar.xz differ: char 25, line 1 ++++++ cfe-docs-4.0.0.src.tar.xz -> cfe-docs-4.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cfe-4.0.0.src/docs/_build/html/ClangFormatStyleOptions.html new/cfe-4.0.1.src/docs/_build/html/ClangFormatStyleOptions.html --- old/cfe-4.0.0.src/docs/_build/html/ClangFormatStyleOptions.html 2017-03-27 09:57:42.666097483 +0200 +++ new/cfe-4.0.1.src/docs/_build/html/ClangFormatStyleOptions.html 2017-06-26 11:09:18.127177330 +0200 @@ -621,7 +621,8 @@ <li><code class="docutils literal"><span class="pre">LS_Cpp03</span></code> (in configuration: <code class="docutils literal"><span class="pre">Cpp03</span></code>) Use C++03-compatible syntax.</li> <li><code class="docutils literal"><span class="pre">LS_Cpp11</span></code> (in configuration: <code class="docutils literal"><span class="pre">Cpp11</span></code>) -Use features of C++11 (e.g. <code class="docutils literal"><span class="pre">A<A<int>></span></code> instead of <code class="docutils literal"><span class="pre">A<A<int></span> <span class="pre">></span></code>).</li> +Use features of C++11, C++14 and C++1z (e.g. <code class="docutils literal"><span class="pre">A<A<int>></span></code> instead of +<code class="docutils literal"><span class="pre">A<A<int></span> <span class="pre">></span></code>).</li> <li><code class="docutils literal"><span class="pre">LS_Auto</span></code> (in configuration: <code class="docutils literal"><span class="pre">Auto</span></code>) Automatic detection based on the input.</li> </ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cfe-4.0.0.src/docs/_build/html/ControlFlowIntegrityDesign.html new/cfe-4.0.1.src/docs/_build/html/ControlFlowIntegrityDesign.html --- old/cfe-4.0.0.src/docs/_build/html/ControlFlowIntegrityDesign.html 2017-03-27 09:57:42.842097565 +0200 +++ new/cfe-4.0.1.src/docs/_build/html/ControlFlowIntegrityDesign.html 2017-06-26 11:09:18.315176973 +0200 @@ -677,28 +677,23 @@ instrumented and several uninstrumented DSOs. Some of them may be dlopen-ed/dlclose-d periodically, even frequently.</p> <blockquote> -<div><ul> -<li><p class="first">Calls made from uninstrumented DSOs are not checked and just work.</p> -</li> -<li><p class="first">Calls inside any instrumented DSO are fully protected.</p> -</li> +<div><ul class="simple"> +<li>Calls made from uninstrumented DSOs are not checked and just work.</li> +<li>Calls inside any instrumented DSO are fully protected.</li> <li><dl class="first docutils"> <dt>Calls between different instrumented DSOs are also protected, with</dt> -<dd><p class="first last">a performance penalty (in addition to the monolithic CFI -overhead).</p> -</dd> +<dd>a performance penalty (in addition to the monolithic CFI +overhead).</dd> </dl> </li> <li><dl class="first docutils"> <dt>Calls from an instrumented DSO to an uninstrumented one are</dt> -<dd><p class="first last">unchecked and just work, with performance penalty.</p> -</dd> +<dd>unchecked and just work, with performance penalty.</dd> </dl> </li> <li><dl class="first docutils"> <dt>Calls from an instrumented DSO outside of any known DSO are</dt> -<dd><p class="first last">detected as CFI violations.</p> -</dd> +<dd>detected as CFI violations.</dd> </dl> </li> </ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cfe-4.0.0.src/docs/_build/html/Modules.html new/cfe-4.0.1.src/docs/_build/html/Modules.html --- old/cfe-4.0.0.src/docs/_build/html/Modules.html 2017-03-27 09:57:45.246098735 +0200 +++ new/cfe-4.0.1.src/docs/_build/html/Modules.html 2017-06-26 11:09:20.727172386 +0200 @@ -387,7 +387,7 @@ <p>A module declaration describes a module, including the headers that contribute to that module, its submodules, and other aspects of the module.</p> <pre class="literal-block"> <em>module-declaration</em>: - <code class="docutils literal"><span class="pre">explicit</span></code><sub>opt</sub> <code class="docutils literal"><span class="pre">framework</span></code><sub>opt</sub> <code class="docutils literal"><span class="pre">module</span></code> <em>module-id</em> <em>attributes</em><sub>opt</sub> '{' <em>module-member*</em> '}' + <code class="docutils literal"><span class="pre">explicit</span></code><span class="subscript">opt</span> <code class="docutils literal"><span class="pre">framework</span></code><span class="subscript">opt</span> <code class="docutils literal"><span class="pre">module</span></code> <em>module-id</em> <em>attributes</em><span class="subscript">opt</span> '{' <em>module-member*</em> '}' <code class="docutils literal"><span class="pre">extern</span></code> <code class="docutils literal"><span class="pre">module</span></code> <em>module-id</em> <em>string-literal</em> </pre> <p>The <em>module-id</em> should consist of only a single <em>identifier</em>, which provides the name of the module being defined. Each module shall have a single definition.</p> @@ -429,7 +429,7 @@ <em>feature</em> (',' <em>feature</em>)* <em>feature</em>: - <code class="docutils literal"><span class="pre">!</span></code><sub>opt</sub> <em>identifier</em> + <code class="docutils literal"><span class="pre">!</span></code><span class="subscript">opt</span> <em>identifier</em> </pre> <p>The requirements clause allows specific modules or submodules to specify that they are only accessible with certain language dialects or on certain platforms. The feature list is a set of identifiers, defined below. If any of the features is not available in a given translation unit, that translation unit shall not import the module. The optional <code class="docutils literal"><span class="pre">!</span></code> indicates that a feature is incompatible with the module.</p> <p>The following features are defined:</p> @@ -479,7 +479,7 @@ <p>A header declaration specifies that a particular header is associated with the enclosing module.</p> <pre class="literal-block"> <em>header-declaration</em>: - <code class="docutils literal"><span class="pre">private</span></code><sub>opt</sub> <code class="docutils literal"><span class="pre">textual</span></code><sub>opt</sub> <code class="docutils literal"><span class="pre">header</span></code> <em>string-literal</em> + <code class="docutils literal"><span class="pre">private</span></code><span class="subscript">opt</span> <code class="docutils literal"><span class="pre">textual</span></code><span class="subscript">opt</span> <code class="docutils literal"><span class="pre">header</span></code> <em>string-literal</em> <code class="docutils literal"><span class="pre">umbrella</span></code> <code class="docutils literal"><span class="pre">header</span></code> <em>string-literal</em> <code class="docutils literal"><span class="pre">exclude</span></code> <code class="docutils literal"><span class="pre">header</span></code> <em>string-literal</em> </pre> @@ -534,7 +534,7 @@ <p>A <em>submodule-declaration</em> that is an <em>inferred-submodule-declaration</em> describes a set of submodules that correspond to any headers that are part of the module but are not explicitly described by a <em>header-declaration</em>.</p> <pre class="literal-block"> <em>inferred-submodule-declaration</em>: - <code class="docutils literal"><span class="pre">explicit</span></code><sub>opt</sub> <code class="docutils literal"><span class="pre">framework</span></code><sub>opt</sub> <code class="docutils literal"><span class="pre">module</span></code> '*' <em>attributes</em><sub>opt</sub> '{' <em>inferred-submodule-member*</em> '}' + <code class="docutils literal"><span class="pre">explicit</span></code><span class="subscript">opt</span> <code class="docutils literal"><span class="pre">framework</span></code><span class="subscript">opt</span> <code class="docutils literal"><span class="pre">module</span></code> '*' <em>attributes</em><span class="subscript">opt</span> '{' <em>inferred-submodule-member*</em> '}' <em>inferred-submodule-member</em>: <code class="docutils literal"><span class="pre">export</span></code> '*' @@ -660,7 +660,7 @@ <p>A <em>link-declaration</em> specifies a library or framework against which a program should be linked if the enclosing module is imported in any translation unit in that program.</p> <pre class="literal-block"> <em>link-declaration</em>: - <code class="docutils literal"><span class="pre">link</span></code> <code class="docutils literal"><span class="pre">framework</span></code><sub>opt</sub> <em>string-literal</em> + <code class="docutils literal"><span class="pre">link</span></code> <code class="docutils literal"><span class="pre">framework</span></code><span class="subscript">opt</span> <em>string-literal</em> </pre> <p>The <em>string-literal</em> specifies the name of the library or framework against which the program should be linked. For example, specifying “clangBasic” would instruct the linker to link with <code class="docutils literal"><span class="pre">-lclangBasic</span></code> for a Unix-style linker.</p> <p>A <em>link-declaration</em> with the <code class="docutils literal"><span class="pre">framework</span></code> specifies that the linker should link against the named framework, e.g., with <code class="docutils literal"><span class="pre">-framework</span> <span class="pre">MyFramework</span></code>.</p> @@ -677,7 +677,7 @@ <p>The <em>config-macros-declaration</em> specifies the set of configuration macros that have an effect on the API of the enclosing module.</p> <pre class="literal-block"> <em>config-macros-declaration</em>: - <code class="docutils literal"><span class="pre">config_macros</span></code> <em>attributes</em><sub>opt</sub> <em>config-macro-list</em><sub>opt</sub> + <code class="docutils literal"><span class="pre">config_macros</span></code> <em>attributes</em><span class="subscript">opt</span> <em>config-macro-list</em><span class="subscript">opt</span> <em>config-macro-list</em>: <em>identifier</em> (',' <em>identifier</em>)* @@ -745,7 +745,7 @@ <p>Attributes are used in a number of places in the grammar to describe specific behavior of other declarations. The format of attributes is fairly simple.</p> <pre class="literal-block"> <em>attributes</em>: - <em>attribute</em> <em>attributes</em><sub>opt</sub> + <em>attribute</em> <em>attributes</em><span class="subscript">opt</span> <em>attribute</em>: '[' <em>identifier</em> ']' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cfe-4.0.0.src/docs/_build/html/ThreadSafetyAnalysis.html new/cfe-4.0.1.src/docs/_build/html/ThreadSafetyAnalysis.html --- old/cfe-4.0.0.src/docs/_build/html/ThreadSafetyAnalysis.html 2017-03-27 09:57:45.702098965 +0200 +++ new/cfe-4.0.1.src/docs/_build/html/ThreadSafetyAnalysis.html 2017-06-26 11:09:21.183171519 +0200 @@ -415,21 +415,16 @@ </div> <div class="section" id="warning-flags"> <h3>Warning flags<a class="headerlink" href="#warning-flags" title="Permalink to this headline">¶</a></h3> -<ul> -<li><p class="first"><code class="docutils literal"><span class="pre">-Wthread-safety</span></code>: Umbrella flag which turns on the following three:</p> -<ul> -<li><p class="first"><code class="docutils literal"><span class="pre">-Wthread-safety-attributes</span></code>: Sanity checks on attribute syntax.</p> -</li> -<li><p class="first"><code class="docutils literal"><span class="pre">-Wthread-safety-analysis</span></code>: The core analysis.</p> -</li> +<ul class="simple"> +<li><code class="docutils literal"><span class="pre">-Wthread-safety</span></code>: Umbrella flag which turns on the following three:<ul> +<li><code class="docutils literal"><span class="pre">-Wthread-safety-attributes</span></code>: Sanity checks on attribute syntax.</li> +<li><code class="docutils literal"><span class="pre">-Wthread-safety-analysis</span></code>: The core analysis.</li> <li><dl class="first docutils"> <dt><code class="docutils literal"><span class="pre">-Wthread-safety-precise</span></code>: Requires that mutex expressions match precisely.</dt> -<dd><p class="first last">This warning can be disabled for code which has a lot of aliases.</p> -</dd> +<dd>This warning can be disabled for code which has a lot of aliases.</dd> </dl> </li> -<li><p class="first"><code class="docutils literal"><span class="pre">-Wthread-safety-reference</span></code>: Checks when guarded members are passed by reference.</p> -</li> +<li><code class="docutils literal"><span class="pre">-Wthread-safety-reference</span></code>: Checks when guarded members are passed by reference.</li> </ul> </li> </ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cfe-4.0.0.src/docs/_build/html/_sources/ClangFormatStyleOptions.rst.txt new/cfe-4.0.1.src/docs/_build/html/_sources/ClangFormatStyleOptions.rst.txt --- old/cfe-4.0.0.src/docs/_build/html/_sources/ClangFormatStyleOptions.rst.txt 2016-08-09 16:24:40.000000000 +0200 +++ new/cfe-4.0.1.src/docs/_build/html/_sources/ClangFormatStyleOptions.rst.txt 2017-04-26 22:48:39.000000000 +0200 @@ -734,7 +734,8 @@ Use C++03-compatible syntax. * ``LS_Cpp11`` (in configuration: ``Cpp11``) - Use features of C++11 (e.g. ``A<A<int>>`` instead of ``A<A<int> >``). + Use features of C++11, C++14 and C++1z (e.g. ``A<A<int>>`` instead of + ``A<A<int> >``). * ``LS_Auto`` (in configuration: ``Auto``) Automatic detection based on the input. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cfe-4.0.0.src/docs/_build/man/clang.1 new/cfe-4.0.1.src/docs/_build/man/clang.1 --- old/cfe-4.0.0.src/docs/_build/man/clang.1 2017-03-27 09:57:40.670096579 +0200 +++ new/cfe-4.0.1.src/docs/_build/man/clang.1 2017-06-26 11:09:15.811181734 +0200 @@ -1,6 +1,6 @@ ." Man page generated from reStructuredText. . -.TH "CLANG" "1" "Mar 27, 2017" "4" "Clang" +.TH "CLANG" "1" "Jun 26, 2017" "4" "Clang" .SH NAME clang - the Clang C, C++, and Objective-C compiler . ++++++ clang-resourcedirs.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:36.625069310 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:36.625069310 +0200 @@ -1,7 +1,7 @@ -Index: cfe-4.0.0.src/lib/Driver/Driver.cpp +Index: cfe-4.0.1.src/lib/Driver/Driver.cpp =================================================================== ---- cfe-4.0.0.src/lib/Driver/Driver.cpp -+++ cfe-4.0.0.src/lib/Driver/Driver.cpp +--- cfe-4.0.1.src/lib/Driver/Driver.cpp ++++ cfe-4.0.1.src/lib/Driver/Driver.cpp @@ -64,7 +64,7 @@ Driver::Driver(StringRef ClangExecutable // Compute the path to the resource directory. ++++++ clang-tools-extra-4.0.0.src.tar.xz -> clang-tools-extra-4.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-4.0.0.src/clang-tidy/modernize/UseEmplaceCheck.cpp new/clang-tools-extra-4.0.1.src/clang-tidy/modernize/UseEmplaceCheck.cpp --- old/clang-tools-extra-4.0.0.src/clang-tidy/modernize/UseEmplaceCheck.cpp 2016-07-29 04:10:23.000000000 +0200 +++ new/clang-tools-extra-4.0.1.src/clang-tidy/modernize/UseEmplaceCheck.cpp 2017-05-22 03:56:33.000000000 +0200 @@ -20,6 +20,14 @@ static const auto DefaultSmartPointers = "::std::shared_ptr; ::std::unique_ptr; ::std::auto_ptr; ::std::weak_ptr"; +namespace { +namespace impl { +// FIXME: This matcher should be replaced by a matcher from ASTMatcher.h +const ast_matchers::internal::VariadicDynCastAllOfMatcher<Stmt, + CXXStdInitializerListExpr> cxxStdInitializerListExpr; +} // namespace impl +} // namespace + UseEmplaceCheck::UseEmplaceCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), ContainersWithPushBack(utils::options::parseStringList(Options.get( @@ -69,7 +77,11 @@ // emplace_back can't access private constructor. auto isPrivateCtor = hasDeclaration(cxxConstructorDecl(isPrivate())); - auto hasInitList = has(ignoringImplicit(initListExpr())); + auto hasInitList = anyOf(has(ignoringImplicit(initListExpr())), + has(impl::cxxStdInitializerListExpr())); + // FIXME: Replace internal C++ initializer list matcher with one from + // ASTMatchers.h + // FIXME: Discard 0/NULL (as nullptr), static inline const data members, // overloaded functions and template names. auto soughtConstructExpr = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-4.0.0.src/include-fixer/plugin/CMakeLists.txt new/clang-tools-extra-4.0.1.src/include-fixer/plugin/CMakeLists.txt --- old/clang-tools-extra-4.0.0.src/include-fixer/plugin/CMakeLists.txt 2017-01-23 23:06:11.000000000 +0100 +++ new/clang-tools-extra-4.0.1.src/include-fixer/plugin/CMakeLists.txt 2017-05-19 03:56:29.000000000 +0200 @@ -9,5 +9,5 @@ clangParse clangSema clangTooling - ${PTHREAD_LIB} + ${LLVM_PTHREAD_LIB} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-4.0.0.src/test/clang-tidy/modernize-use-emplace.cpp new/clang-tools-extra-4.0.1.src/test/clang-tidy/modernize-use-emplace.cpp --- old/clang-tools-extra-4.0.0.src/test/clang-tidy/modernize-use-emplace.cpp 2016-07-29 04:10:23.000000000 +0200 +++ new/clang-tools-extra-4.0.1.src/test/clang-tidy/modernize-use-emplace.cpp 2017-05-22 03:56:33.000000000 +0200 @@ -4,9 +4,19 @@ // RUN: value: '::std::vector; ::std::list; ::std::deque; llvm::LikeASmallVector'}]}" -- -std=c++11 namespace std { +template <typename> +class initializer_list +{ +public: + initializer_list() noexcept {} +}; + template <typename T> class vector { public: + vector() = default; + vector(initializer_list<T>) {} + void push_back(const T &) {} void push_back(T &&) {} @@ -422,3 +432,16 @@ // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use emplace_back // CHECK-FIXES: v.emplace_back(42); } + +void testInitializerList() { + std::vector<std::vector<int>> v; + v.push_back(std::vector<int>({1})); + // Test against the bug reported in PR32896. + + v.push_back({{2}}); + + using PairIntVector = std::pair<int, std::vector<int>>; + std::vector<PairIntVector> x; + x.push_back(PairIntVector(3, {4})); + x.push_back({5, {6}}); +} ++++++ compiler-rt-4.0.0.src.tar.xz -> compiler-rt-4.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compiler-rt-4.0.0.src/lib/msan/tests/msan_test.cc new/compiler-rt-4.0.1.src/lib/msan/tests/msan_test.cc --- old/compiler-rt-4.0.0.src/lib/msan/tests/msan_test.cc 2016-08-20 02:38:55.000000000 +0200 +++ new/compiler-rt-4.0.1.src/lib/msan/tests/msan_test.cc 2017-05-16 08:57:03.000000000 +0200 @@ -2124,10 +2124,51 @@ EXPECT_NE(0U, strlen(time.tm_zone)); } +#if !defined(__FreeBSD__) +/* Creates a temporary file with contents similar to /etc/fstab to be used + with getmntent{_r}. */ +class TempFstabFile { + public: + TempFstabFile() : fd (-1) { } + ~TempFstabFile() { + if (fd >= 0) + close (fd); + } + + bool Create(void) { + snprintf(tmpfile, sizeof(tmpfile), "/tmp/msan.getmntent.tmp.XXXXXX"); + + fd = mkstemp(tmpfile); + if (fd == -1) + return false; + + const char entry[] = "/dev/root / ext4 errors=remount-ro 0 1"; + size_t entrylen = sizeof(entry); + + size_t bytesWritten = write(fd, entry, entrylen); + if (entrylen != bytesWritten) + return false; + + return true; + } + + const char* FileName(void) { + return tmpfile; + } + + private: + char tmpfile[128]; + int fd; +}; +#endif + // There's no getmntent() on FreeBSD. #if !defined(__FreeBSD__) TEST(MemorySanitizer, getmntent) { - FILE *fp = setmntent("/etc/fstab", "r"); + TempFstabFile fstabtmp; + ASSERT_TRUE(fstabtmp.Create()); + FILE *fp = setmntent(fstabtmp.FileName(), "r"); + struct mntent *mnt = getmntent(fp); ASSERT_TRUE(mnt != NULL); ASSERT_NE(0U, strlen(mnt->mnt_fsname)); @@ -2143,7 +2184,10 @@ // There's no getmntent_r() on FreeBSD. #if !defined(__FreeBSD__) TEST(MemorySanitizer, getmntent_r) { - FILE *fp = setmntent("/etc/fstab", "r"); + TempFstabFile fstabtmp; + ASSERT_TRUE(fstabtmp.Create()); + FILE *fp = setmntent(fstabtmp.FileName(), "r"); + struct mntent mntbuf; char buf[1000]; struct mntent *mnt = getmntent_r(fp, &mntbuf, buf, sizeof(buf)); ++++++ default-to-i586.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:38.196847980 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:38.196847980 +0200 @@ -1,7 +1,7 @@ -Index: cfe-4.0.0.src/lib/Driver/Tools.cpp +Index: cfe-4.0.1.src/lib/Driver/Tools.cpp =================================================================== ---- cfe-4.0.0.src/lib/Driver/Tools.cpp.orig -+++ cfe-4.0.0.src/lib/Driver/Tools.cpp +--- cfe-4.0.1.src/lib/Driver/Tools.cpp.orig ++++ cfe-4.0.1.src/lib/Driver/Tools.cpp @@ -1680,8 +1680,8 @@ static const char *getX86TargetCPU(const case llvm::Triple::Bitrig: return "i686"; ++++++ libcxx-4.0.0.src.tar.xz -> libcxx-4.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-4.0.0.src/include/string new/libcxx-4.0.1.src/include/string --- old/libcxx-4.0.0.src/include/string 2017-01-24 02:03:36.000000000 +0100 +++ new/libcxx-4.0.1.src/include/string 2017-05-03 21:48:55.000000000 +0200 @@ -2242,7 +2242,9 @@ size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last)); if (__n) { - if ( __ptr_in_range(&*__first, data(), data() + size())) + typedef typename iterator_traits<_ForwardIterator>::reference _CharRef; + _CharRef __tmp_ref = *__first; + if (__ptr_in_range(_VSTD::addressof(__tmp_ref), data(), data() + size())) { const basic_string __temp (__first, __last, __alloc()); append(__temp.data(), __temp.size()); @@ -2406,7 +2408,9 @@ size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last)); if (__n) { - if ( __ptr_in_range(&*__first, data(), data() + size())) + typedef typename iterator_traits<_ForwardIterator>::reference _CharRef; + _CharRef __tmp_char = *__first; + if (__ptr_in_range(_VSTD::addressof(__tmp_char), data(), data() + size())) { const basic_string __temp(__first, __last, __alloc()); return insert(__pos, __temp.data(), __temp.data() + __temp.size()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-4.0.0.src/include/type_traits new/libcxx-4.0.1.src/include/type_traits --- old/libcxx-4.0.0.src/include/type_traits 2017-01-06 22:42:58.000000000 +0100 +++ new/libcxx-4.0.1.src/include/type_traits 2017-05-03 21:50:39.000000000 +0200 @@ -1297,18 +1297,8 @@ // is_abstract -namespace __is_abstract_imp -{ -template <class _Tp> char __test(_Tp (*)[1]); -template <class _Tp> __two __test(...); -} - -template <class _Tp, bool = is_class<_Tp>::value> -struct __libcpp_abstract : public integral_constant<bool, sizeof(__is_abstract_imp::__test<_Tp>(0)) != 1> {}; - -template <class _Tp> struct __libcpp_abstract<_Tp, false> : public false_type {}; - -template <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_abstract : public __libcpp_abstract<_Tp> {}; +template <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_abstract + : public integral_constant<bool, __is_abstract(_Tp)> {}; #if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) template <class _Tp> _LIBCPP_CONSTEXPR bool is_abstract_v diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-4.0.0.src/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp new/libcxx-4.0.1.src/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp --- old/libcxx-4.0.0.src/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp 2016-11-23 23:03:28.000000000 +0100 +++ new/libcxx-4.0.1.src/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp 2017-05-03 21:48:55.000000000 +0200 @@ -204,4 +204,20 @@ assert(s == "ABCD"); } + { // test with a move iterator that returns char&& + typedef forward_iterator<const char*> It; + typedef std::move_iterator<It> MoveIt; + const char p[] = "ABCD"; + std::string s; + s.append(MoveIt(It(std::begin(p))), MoveIt(It(std::end(p) - 1))); + assert(s == "ABCD"); + } + { // test with a move iterator that returns char&& + typedef const char* It; + typedef std::move_iterator<It> MoveIt; + const char p[] = "ABCD"; + std::string s; + s.append(MoveIt(It(std::begin(p))), MoveIt(It(std::end(p) - 1))); + assert(s == "ABCD"); + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-4.0.0.src/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp new/libcxx-4.0.1.src/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp --- old/libcxx-4.0.0.src/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp 2016-11-23 23:03:28.000000000 +0100 +++ new/libcxx-4.0.1.src/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp 2017-05-03 21:48:55.000000000 +0200 @@ -188,10 +188,35 @@ { // test assigning a different type typedef std::string S; - const uint8_t p[] = "ABCD"; + const uint8_t p[] = "ABCD"; - S s; - s.insert(s.begin(), p, p + 4); - assert(s == "ABCD"); + S s; + s.insert(s.begin(), p, p + 4); + assert(s == "ABCD"); } + + { // test with a move iterator that returns char&& + typedef input_iterator<const char*> It; + typedef std::move_iterator<It> MoveIt; + const char p[] = "ABCD"; + std::string s; + s.insert(s.begin(), MoveIt(It(std::begin(p))), MoveIt(It(std::end(p) - 1))); + assert(s == "ABCD"); + } + { // test with a move iterator that returns char&& + typedef forward_iterator<const char*> It; + typedef std::move_iterator<It> MoveIt; + const char p[] = "ABCD"; + std::string s; + s.insert(s.begin(), MoveIt(It(std::begin(p))), MoveIt(It(std::end(p) - 1))); + assert(s == "ABCD"); + } + { // test with a move iterator that returns char&& + typedef const char* It; + typedef std::move_iterator<It> MoveIt; + const char p[] = "ABCD"; + std::string s; + s.insert(s.begin(), MoveIt(It(std::begin(p))), MoveIt(It(std::end(p) - 1))); + assert(s == "ABCD"); + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-4.0.0.src/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp new/libcxx-4.0.1.src/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp --- old/libcxx-4.0.0.src/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp 2015-11-01 21:24:59.000000000 +0100 +++ new/libcxx-4.0.1.src/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp 2017-05-03 21:50:39.000000000 +0200 @@ -65,6 +65,14 @@ virtual ~Abstract() = 0; }; +template <class> +struct AbstractTemplate { + virtual void test() = 0; +}; + +template <> +struct AbstractTemplate<double> {}; + int main() { test_is_not_abstract<void>(); @@ -81,4 +89,6 @@ test_is_not_abstract<NotEmpty>(); test_is_abstract<Abstract>(); + test_is_abstract<AbstractTemplate<int> >(); + test_is_not_abstract<AbstractTemplate<double> >(); } ++++++ libcxxabi-4.0.0.src.tar.xz -> libcxxabi-4.0.1.src.tar.xz ++++++ ++++++ lldb-4.0.0.src.tar.xz -> lldb-4.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm4/lldb-4.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm4.new/lldb-4.0.1.src.tar.xz differ: char 25, line 1 ++++++ lldb-add-pthread-dl-libs.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:40.504523024 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:40.504523024 +0200 @@ -1,7 +1,7 @@ -Index: lldb-4.0.0.src/cmake/modules/LLDBConfig.cmake +Index: lldb-4.0.1.src/cmake/modules/LLDBConfig.cmake =================================================================== ---- lldb-4.0.0.src.orig/cmake/modules/LLDBConfig.cmake -+++ lldb-4.0.0.src/cmake/modules/LLDBConfig.cmake +--- lldb-4.0.1.src.orig/cmake/modules/LLDBConfig.cmake ++++ lldb-4.0.1.src/cmake/modules/LLDBConfig.cmake @@ -323,13 +323,9 @@ endif() ++++++ lldb-cmake.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:40.512521898 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:40.512521898 +0200 @@ -1,7 +1,7 @@ -Index: lldb-4.0.0.src/source/lldb.cpp +Index: lldb-4.0.1.src/source/lldb.cpp =================================================================== ---- lldb-4.0.0.src.orig/source/lldb.cpp -+++ lldb-4.0.0.src/source/lldb.cpp +--- lldb-4.0.1.src.orig/source/lldb.cpp ++++ lldb-4.0.1.src/source/lldb.cpp @@ -23,11 +23,7 @@ using namespace lldb_private; #endif @@ -14,10 +14,10 @@ } static const char *GetLLDBRepository() { -Index: lldb-4.0.0.src/source/Core/IOHandler.cpp +Index: lldb-4.0.1.src/source/Core/IOHandler.cpp =================================================================== ---- lldb-4.0.0.src.orig/source/Core/IOHandler.cpp -+++ lldb-4.0.0.src/source/Core/IOHandler.cpp +--- lldb-4.0.1.src.orig/source/Core/IOHandler.cpp ++++ lldb-4.0.1.src/source/Core/IOHandler.cpp @@ -9,8 +9,8 @@ // C Includes @@ -29,10 +29,10 @@ #endif // C++ Includes -Index: lldb-4.0.0.src/source/Host/CMakeLists.txt +Index: lldb-4.0.1.src/source/Host/CMakeLists.txt =================================================================== ---- lldb-4.0.0.src.orig/source/Host/CMakeLists.txt -+++ lldb-4.0.0.src/source/Host/CMakeLists.txt +--- lldb-4.0.1.src.orig/source/Host/CMakeLists.txt ++++ lldb-4.0.1.src/source/Host/CMakeLists.txt @@ -162,4 +162,6 @@ add_lldb_library(lldbHost ${HOST_SOURCES if (CMAKE_SYSTEM_NAME MATCHES "NetBSD") @@ -40,10 +40,10 @@ +elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") +set(EXTRA_LIBS dl pthread) endif () -Index: lldb-4.0.0.src/tools/lldb-mi/CMakeLists.txt +Index: lldb-4.0.1.src/tools/lldb-mi/CMakeLists.txt =================================================================== ---- lldb-4.0.0.src.orig/tools/lldb-mi/CMakeLists.txt -+++ lldb-4.0.0.src/tools/lldb-mi/CMakeLists.txt +--- lldb-4.0.1.src.orig/tools/lldb-mi/CMakeLists.txt ++++ lldb-4.0.1.src/tools/lldb-mi/CMakeLists.txt @@ -86,9 +86,6 @@ endif () set(LLVM_LINK_COMPONENTS Support) add_lldb_tool(lldb-mi ${LLDB_MI_SOURCES}) ++++++ lldb-gcc7.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:40.528519645 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:40.528519645 +0200 @@ -1,7 +1,7 @@ -Index: lldb-4.0.0.src/include/lldb/Utility/TaskPool.h +Index: lldb-4.0.1.src/include/lldb/Utility/TaskPool.h =================================================================== ---- lldb-4.0.0.src.orig/include/lldb/Utility/TaskPool.h -+++ lldb-4.0.0.src/include/lldb/Utility/TaskPool.h +--- lldb-4.0.1.src.orig/include/lldb/Utility/TaskPool.h ++++ lldb-4.0.1.src/include/lldb/Utility/TaskPool.h @@ -28,6 +28,7 @@ #include <cassert> ++++++ llvm-4.0.0.src.tar.xz -> llvm-4.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm4/llvm-4.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm4.new/llvm-4.0.1.src.tar.xz differ: char 25, line 1 ++++++ llvm-docs-4.0.0.src.tar.xz -> llvm-docs-4.0.1.src.tar.xz ++++++ ++++ 2137 lines of diff (skipped) ++++++ llvm-fix-find-gcc5-install.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:41.112437421 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:41.112437421 +0200 @@ -1,7 +1,7 @@ -Index: cfe-4.0.0.src/lib/Driver/ToolChains.cpp +Index: cfe-4.0.1.src/lib/Driver/ToolChains.cpp =================================================================== ---- cfe-4.0.0.src/lib/Driver/ToolChains.cpp -+++ cfe-4.0.0.src/lib/Driver/ToolChains.cpp +--- cfe-4.0.1.src/lib/Driver/ToolChains.cpp ++++ cfe-4.0.1.src/lib/Driver/ToolChains.cpp @@ -1294,7 +1294,8 @@ GoodVersion.MajorStr = First.first.str(); if (First.second.empty()) ++++++ llvm-remove-clang-only-flags.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:41.124435732 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:41.124435732 +0200 @@ -1,7 +1,7 @@ -Index: llvm-4.0.0.src/cmake/modules/HandleLLVMOptions.cmake +Index: llvm-4.0.1.src/cmake/modules/HandleLLVMOptions.cmake =================================================================== ---- llvm-4.0.0.src.orig/cmake/modules/HandleLLVMOptions.cmake -+++ llvm-4.0.0.src/cmake/modules/HandleLLVMOptions.cmake +--- llvm-4.0.1.src.orig/cmake/modules/HandleLLVMOptions.cmake ++++ llvm-4.0.1.src/cmake/modules/HandleLLVMOptions.cmake @@ -419,7 +419,6 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE append_if(LLVM_ENABLE_PEDANTIC "-pedantic" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) ++++++ openmp-4.0.0.src.tar.xz -> openmp-4.0.1.src.tar.xz ++++++ ++++++ set-revision.patch ++++++ --- /var/tmp/diff_new_pack.yp7RPg/_old 2017-07-04 13:32:41.776343933 +0200 +++ /var/tmp/diff_new_pack.yp7RPg/_new 2017-07-04 13:32:41.776343933 +0200 @@ -1,7 +1,7 @@ -Index: cfe-4.0.0.src/lib/Basic/Version.cpp +Index: cfe-4.0.1.src/lib/Basic/Version.cpp =================================================================== ---- cfe-4.0.0.src/lib/Basic/Version.cpp.orig -+++ cfe-4.0.0.src/lib/Basic/Version.cpp +--- cfe-4.0.1.src/lib/Basic/Version.cpp.orig ++++ cfe-4.0.1.src/lib/Basic/Version.cpp @@ -72,19 +72,11 @@ std::string getLLVMRepositoryPath() { }