and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 18 Jan, 2017 11 commits
    • Rafael Espindola's avatar
      Port r292146. · 1fc8b507
      Rafael Espindola authored
      Give priority to linker scripts over preemption.
      
      LLD exports symbols that are also present in used shared libraries to
      make sure they are preempted at runtime. That is a reasonable default,
      but we must allow for it to be overwritten with linker script. If we
      don't, libraries that expect to be able to hide a c++ delete operator
      will fail.
      
      This should fix the firebird build.
      
      llvm-svn: 292370
      1fc8b507
    • Eric Fiselier's avatar
      Merge R292276: Fix std::string assignment ambiguity from braced initializer lists. · 72cd787e
      Eric Fiselier authored
      When support for `basic_string_view` was added to string it also
      added new assignment operators from `basic_string_view`. These caused
      ambiguity when assigning from a braced initializer. This patch fixes
      that regression by making the basic_string_view assignment operator
      rank lower in overload resolution by making it a template.
      
      llvm-svn: 292354
      72cd787e
    • Hans Wennborg's avatar
      Merging r292013: · 5476b86e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292013 | hahnfeld | 2017-01-14 03:35:15 -0800 (Sat, 14 Jan 2017) | 6 lines
      
      Fix last_write_time tests for filesystems that don't support negative and very large times
      
      Seems to be the case for NFS.
      
      Original patch by Eric Fiselier!
      Differential Revision: https://reviews.llvm.org/D22452
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292341
      5476b86e
    • Hans Wennborg's avatar
      Merging r291966: · f581e2cd
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291966 | majnemer | 2017-01-13 14:24:27 -0800 (Fri, 13 Jan 2017) | 6 lines
      
      [LoopStrengthReduce] Don't bother rewriting PHIs in catchswitch blocks
      
      The catchswitch instruction cannot be split, don't bother trying to
      rewrite it.
      
      This fixes PR31627.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292340
      f581e2cd
    • Hans Wennborg's avatar
      Merging r292247: · 51d42e77
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292247 | jbcoe | 2017-01-17 12:03:54 -0800 (Tue, 17 Jan 2017) | 14 lines
      
      Fix Python 3 language issues and add an explicit check for Python version == 2.
      
      Summary:
      Python bindings cannot support Python 3 without work being done to fix Unicode c-string conversion.
      
      This was attempted in https://reviews.llvm.org/D26082. That patch was reverted due to memory access issues on Linux.
      
      This revision fixes enough language compatibility issues for the clang module to be loaded and raise an error if the Python version is not 2.
      
      Reviewers: mgorny, MathieuDuponchelle, rengolin, compnerd
      
      Reviewed By: compnerd
      
      Differential Revision: https://reviews.llvm.org/D28682
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292339
      51d42e77
    • Hans Wennborg's avatar
      Merging r292183: · 7dc1f858
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292183 | rsmith | 2017-01-16 18:14:37 -0800 (Mon, 16 Jan 2017) | 14 lines
      
      Partial revert of r290511.
      
      The rules around typechecking deduced template arguments during partial
      ordering are not clear, and while the prior behavior does not seem to be
      correct (it doesn't follow the general model of partial ordering where each
      template parameter is replaced by a non-dependent but unique value), the new
      behavior is also not clearly right and breaks some existing idioms.
      
      The new behavior is retained for dealing with non-type template parameters
      with 'auto' types, as without it even the most basic uses of that feature
      don't work. We can revisit this once CWG has come to an agreement on how
      partial ordering with 'auto' non-type template parameters is supposed to
      work.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292338
      7dc1f858
    • Hans Wennborg's avatar
      Merging r292052: · 4fe1712e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292052 | akirtzidis | 2017-01-14 22:11:04 -0800 (Sat, 14 Jan 2017) | 1 line
      
      [code-completion] Fix crash when trying to do postfix completion of instance member inside a static function.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292313
      4fe1712e
    • Hans Wennborg's avatar
      Merging r292133: · 481bb249
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292133 | hfinkel | 2017-01-16 07:22:01 -0800 (Mon, 16 Jan 2017) | 10 lines
      
      Fix use-after-free bug in AffectedValueCallbackVH::allUsesReplacedWith
      
      When transferring affected values in the cache from an old value, identified by
      the value of the current callback, to the specified new value we might need to
      insert a new entry into the DenseMap which constitutes the cache. Doing so
      might delete the current callback object. Move the copying logic into a new
      function, a member of the assumption cache itself, so that we don't run into UB
      should the callback handle itself be removed mid-copy.
      
      Differential Revision: https://reviews.llvm.org/D28749
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292312
      481bb249
    • Hans Wennborg's avatar
      Merging r292032: · 57f962df
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292032 | yrnkrn | 2017-01-14 13:12:08 -0800 (Sat, 14 Jan 2017) | 4 lines
      
      Fix PR31644 introduced by r287138 and add a regression test.
      Thanks Dimitry Andric for the report and fix!
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292311
      57f962df
    • Eric Fiselier's avatar
      Merge r292294: Fix type_info's constructor by making it explicit again. · 4fae7917
      Eric Fiselier authored
      In recent changes type_info's private constructor was accidentally made
      implicit. This patch fixes that.
      
      llvm-svn: 292309
      4fae7917
    • Hans Wennborg's avatar
      Merging r291968 and r291979: · 759bf087
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291968 | dannyb | 2017-01-13 14:40:01 -0800 (Fri, 13 Jan 2017) | 23 lines
      
      NewGVN: Move leaders around properly to ensure we have a canonical dominating leader. Fixes PR 31613.
      
      Summary:
      This is a testcase where phi node cycling happens, and because we do
      not order the leaders by domination or anything similar, the leader
      keeps changing.
      
      Using std::set for the members is too expensive, and we actually don't
      need them sorted all the time, only at leader changes.
      
      We could keep both a set and a vector, and keep them mostly sorted and
      resort as necessary, or use a set and a fibheap, but all of this seems
      premature.
      
      After running some statistics, we are able to avoid the vast majority
      of sorting by keeping a "next leader" field.  Most congruence classes only have
      leader changes once or twice during GVN.
      
      Reviewers: davide
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D28594
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r291979 | dannyb | 2017-01-13 15:54:10 -0800 (Fri, 13 Jan 2017) | 1 line
      
      NewGVN: Fix PR31613 test regex naming
      ------------------------------------------------------------------------
      
      llvm-svn: 292307
      759bf087
  2. 17 Jan, 2017 8 commits
    • Hans Wennborg's avatar
      Merging r292255: · c011d30b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292255 | mgorny | 2017-01-17 13:04:19 -0800 (Tue, 17 Jan 2017) | 12 lines
      
      [cmake] Update SOVERSION for the new versioning scheme
      
      Update SOVERSION to use just the major version number rather than
      major+minor, to match the new versioning scheme where only major is used
      to indicate API/ABI version.
      
      Since two-digit SOVERSIONs were introduced post 3.9 branching, this
      change does not risk any SOVERSION collisions. In the past,
      two-component X.Y SOVERSIONs were shortly used but those will not
      interfere with the new ones since the new versions start at 4.
      
      Differential Revision: https://reviews.llvm.org/D28730
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292270
      c011d30b
    • Hans Wennborg's avatar
      Make the -fstrict-vtable-pointers link relative · 59b71225
      Hans Wennborg authored
      llvm-svn: 292267
      59b71225
    • Hans Wennborg's avatar
      Merging r292265: · 8819de88
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292265 | hans | 2017-01-17 13:31:57 -0800 (Tue, 17 Jan 2017) | 1 line
      
      UsersManual.rst: add missing newline
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292266
      8819de88
    • Hans Wennborg's avatar
      Fix -fstrict-vtable-pointers link · ac7da556
      Hans Wennborg authored
      llvm-svn: 292264
      ac7da556
    • Hans Wennborg's avatar
      Drop 'if you're using released version' warning · b60a8c7d
      Hans Wennborg authored
      llvm-svn: 292263
      b60a8c7d
    • Hans Wennborg's avatar
      Fix docs build · 6e97d976
      Hans Wennborg authored
      llvm-svn: 292262
      6e97d976
    • Hans Wennborg's avatar
      Regenerate AttributeReference.rst · 2c585068
      Hans Wennborg authored
      llvm-svn: 292259
      2c585068
    • Hans Wennborg's avatar
      Merging r292242: · 80e29a83
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r292242 | bwilson | 2017-01-17 11:18:57 -0800 (Tue, 17 Jan 2017) | 5 lines
      
      Revert r291640 change to fold X86 comparison with atomic_load_add.
      
      Even with the fix from r291630, this still causes problems. I get
      widespread assertion failures in the Swift runtime's WeakRefCount::increment()
      function. I sent a reduced testcase in reply to the commit.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 292243
      80e29a83
  3. 16 Jan, 2017 1 commit
  4. 15 Jan, 2017 2 commits
  5. 14 Jan, 2017 1 commit
  6. 13 Jan, 2017 11 commits
    • Hans Wennborg's avatar
      Merging r291964: · 74ffad29
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291964 | rsmith | 2017-01-13 14:16:41 -0800 (Fri, 13 Jan 2017) | 2 lines
      
      PR31631: fix bad CFG (and bogus warnings) when an if-statement has an init-statement and has binary operator as its condition.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291978
      74ffad29
    • Hans Wennborg's avatar
      Merging r291879: · aa8d52cd
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291879 | echristo | 2017-01-12 17:52:04 -0800 (Thu, 12 Jan 2017) | 1 line
      
      Add a necessary newline for diagnose_if documentation.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291952
      aa8d52cd
    • Hans Wennborg's avatar
      Merging r291881: · d7cde544
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291881 | chandlerc | 2017-01-12 18:47:34 -0800 (Thu, 12 Jan 2017) | 3 lines
      
      Another fix for r291850 because there are apparently targets which add
      "-mllvm" flags to the CC1 invocation (notably, Hexagon seems to hit
      this).
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291951
      d7cde544
    • Hans Wennborg's avatar
      Merging r291907: · 33799a65
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291907 | jbcoe | 2017-01-13 08:06:59 -0800 (Fri, 13 Jan 2017) | 6 lines
      
      Revert "Support for Python 3 in libclang python bindings"
      
      This reverts commit 4464581bb63e9789e9ee231a8c8800be5f614743.
      
      Memory access issues on Linux were reported by Mathieu Duponchelle and
      discussed here: https://reviews.llvm.org/D26082.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291950
      33799a65
    • Hans Wennborg's avatar
      Merging r291875: · 43c1ed14
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291875 | chapuni | 2017-01-12 17:13:10 -0800 (Thu, 12 Jan 2017) | 8 lines
      
      Revert r291503, "Lift the 10-type limit for AlignedCharArrayUnion", and followings.
      
        r291503, "Lift the 10-type limit for AlignedCharArrayUnion"
        r291514, "Fix MSVC build of AlignedCharArrayUnion"
        r291515, "Revert the attempt to optimize the constexpr functions. MSVC does not handle this yet"
        r291519, "Try once again to fix the MSVC build of AlignedCharArrayUnion"
      
      They has been failing on i686-linux.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291945
      43c1ed14
    • Hans Wennborg's avatar
      Merging r291877: · 111f0956
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291877 | smeenai | 2017-01-12 17:28:34 -0800 (Thu, 12 Jan 2017) | 13 lines
      
      [Sema] Restrict explicit instantation definition dllexport
      
      In the case where the template class itself is already `dllexport`, the
      implicit instantiation will have already emitted all members. When we
      check the explicit instantiation definition, the `Specialization` will
      have inherited the `dllexport` attribute, so we'll attempt to emit all
      members for a second time, which causes an assertion failure. Restrict
      the exporting to when the `dllexport` attribute is newly introduced by
      the explicit instantiation definition.
      
      Fixes PR31608.
      
      Differential Revision: https://reviews.llvm.org/D28590
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291943
      111f0956
    • Eric Fiselier's avatar
      Fix merge error caused by r291922 · 45181d08
      Eric Fiselier authored
      llvm-svn: 291935
      45181d08
    • Eric Fiselier's avatar
      8343e2dd
    • Hans Wennborg's avatar
      Merging r291863: · c18d0310
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291863 | chapuni | 2017-01-12 16:17:15 -0800 (Thu, 12 Jan 2017) | 1 line
      
      xray-account: Avoid std::errc::bad_message to appease mingw.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291914
      c18d0310
    • Hans Wennborg's avatar
      Merging r291871: · 3294e2a1
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291871 | rsmith | 2017-01-12 16:57:54 -0800 (Thu, 12 Jan 2017) | 10 lines
      
      Update C++ status pages for Clang 4 branch:
      
       * Update version number in DR tests from 4.0 to 4
       * Teach make_cxx_dr_status script about version numbers that don't contain a
         period.
       * Update cxx_status.html and cxx_dr_status.html to list Clang 4 features as
         "Clang 4" rather than "SVN"
      
      Clang 4 features are still listed in yellow rather than green until release.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291913
      3294e2a1
    • Hans Wennborg's avatar
      Merging r291865: · e9b065b5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r291865 | rsmith | 2017-01-12 16:43:31 -0800 (Thu, 12 Jan 2017) | 15 lines
      
      Improve handling of instantiated thread_local variables in Itanium C++ ABI.
      
       * Do not initialize these variables when initializing the rest of the
         thread_locals in the TU; they have unordered initialization so they can be
         initialized by themselves.
      
         This fixes a rejects-valid bug: we would make the per-variable initializer
         function internal, but put it in a comdat keyed off the variable, resulting
         in link errors when the comdat is selected from a different TU (as the per
         TU TLS init function tries to call an init function that does not exist).
      
       * On Darwin, when we decide that we're not going to emit a thread wrapper
         function at all, demote its linkage to External. Fixes a verifier failure
         on explicit instantiation of a thread_local variable on Darwin.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 291912
      e9b065b5
  7. 12 Jan, 2017 6 commits