Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add move constructors to the invisible reference rule. #17

Merged
merged 1 commit into from
Mar 30, 2017

Conversation

jicama
Copy link
Contributor

@jicama jicama commented Mar 30, 2017

OK, trying again on the right branch:

We've agreed on this several times over the years (in the thread "Transfer modes for parameters and return values"), but the document still hasn't been updated. In that thread Richard proposed the wording "[Pass an object of class type by value if] every copy constructor and move constructor is deleted or trivial and at least one of them is not deleted, and the destructor is trivial", but that requires reversing the sense of the paragraph; I believe that my wording here has the same effect.

@rjmccall
Copy link
Collaborator

Thanks!

@rjmccall rjmccall merged commit 7099637 into itanium-cxx-abi:master Mar 30, 2017
spurious pushed a commit to spurious/clang-mirror that referenced this pull request Aug 8, 2017
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@310401 91177308-0d34-0410-b5e6-96231b3b80d8
spurious pushed a commit to spurious/clang-mirror that referenced this pull request Aug 16, 2017
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@310983 91177308-0d34-0410-b5e6-96231b3b80d8
baolonglin pushed a commit to baolonglin/clang that referenced this pull request Aug 25, 2017
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310401 91177308-0d34-0410-b5e6-96231b3b80d8
baolonglin pushed a commit to baolonglin/clang that referenced this pull request Aug 25, 2017
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310983 91177308-0d34-0410-b5e6-96231b3b80d8
neboat added a commit to wsmoses/Tapir-Clang that referenced this pull request Mar 24, 2018
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
llvm-git-migration pushed a commit to llvm-git-prototype/llvm that referenced this pull request Nov 6, 2018
------------------------------------------------------------------------
r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

PR19668, PR23034: Fix handling of move constructors and deleted copy
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).

------------------------------------------------------------------------

llvm-svn=311410
llvm-git-migration pushed a commit to llvm-git-prototype/llvm that referenced this pull request Jan 4, 2019
------------------------------------------------------------------------
r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

PR19668, PR23034: Fix handling of move constructors and deleted copy
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).

------------------------------------------------------------------------

llvm-svn: 311410
stelleg pushed a commit to wsmoses/Tapir-Clang that referenced this pull request Jan 22, 2019
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
stelleg pushed a commit to wsmoses/Tapir-Clang that referenced this pull request Jan 22, 2019
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
stelleg pushed a commit to stelleg/Tapir-Clang that referenced this pull request May 9, 2019
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
neboat added a commit to OpenCilk/opencilk-project that referenced this pull request Jan 15, 2020
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
neboat added a commit to OpenCilk/opencilk-project that referenced this pull request Jan 15, 2020
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
neboat added a commit to OpenCilk/opencilk-project that referenced this pull request Jan 15, 2020
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
neboat added a commit to OpenCilk/opencilk-project that referenced this pull request Jan 15, 2020
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
stelleg pushed a commit to lanl/kitsune that referenced this pull request May 27, 2020
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
stelleg pushed a commit to stelleg/llvm-project that referenced this pull request Oct 13, 2020
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
neboat added a commit to neboat/opencilk-project that referenced this pull request Jun 13, 2022
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
ajohnson-uoregon pushed a commit to ajohnson-uoregon/clang-rewrite-only that referenced this pull request Jul 17, 2022
------------------------------------------------------------------------
r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

PR19668, PR23034: Fix handling of move constructors and deleted copy
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   itanium-cxx-abi/cxx-abi#17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).

------------------------------------------------------------------------

llvm-svn: 311410
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this pull request Apr 4, 2023
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this pull request Jul 25, 2023
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this pull request Sep 26, 2023
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this pull request Oct 12, 2023
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
neboat added a commit to neboat/opencilk-project that referenced this pull request Nov 28, 2023
commit 51d7b71ff6cb4c026e18ea212e57b979e7b78896
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 15:22:07 2018 +0000

    [Tapir] Removing tapir namespace to work around GCC bug in namespace handling.

commit 2f4bebc189341683dfb50fbb09969268650eae34
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jan 8 14:02:11 2018 +0000

    [ToolChain] Ensure that, if no Tapir-related compiler flag is specified, then no parallel runtime is included.

commit a50f74fa5c21005982d1443104f8bc2f872ba378
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 17 01:56:27 2017 +0000

    [Tapir] Added -ftapir=cilkr flag to support Tapir targeting the CilkR runtime library.

commit 9e81b3be8a7749cb8feea3f6bad30df9b7ba1e75
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Dec 10 00:36:13 2017 +0000

    Reverted [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit f4e7f92bcca91742609be137fd9bc3e7bf1ac024
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Dec 7 18:24:59 2017 +0000

    [SemaStmt] Adding Sema checks to _Cilk_for condition expressions.

commit e052320cd5d8887cf1e0fa5865d45c6c3923ec57
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 19:05:09 2017 +0000

    [_Cilk_for] Fixed warning messages for unsupported cilk grainsize syntax.

commit abf875debb8cc01fca32555c02e974d5f34bfd29
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Dec 6 15:49:28 2017 +0000

    [test] Updated warning-flags test to eliminate unused diagnostic.

commit 461858de8ef3abc033733cf845d733b379d65967
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:35:20 2017 +0000

    [Basic] Removing unused warning.

commit 1ae43af670095fb80183ed74394953cf21204e94
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:34:58 2017 +0000

    [CodeGen] Minor cleanup to bring CodeGen files more in line with mainline Clang.

commit 20b6579f3908149d160dbb6990ece44645636ca1
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 10 22:33:37 2017 +0000

    [Cilk] Updating tests to play nice with the testing infrastructure.

commit e7e29f9e59617d45b76c48374a650c9e29f4a853
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Dec 5 23:50:04 2017 +0000

    [Cilk] Bug fix to correctly define preprocessor macros indicating compilation of a Cilk program.

commit 4dff7fbf09671eede3a6de04991da001b30c9476
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Nov 20 16:25:09 2017 +0000

    [Cilksan] Modified "-fsanitize=cilk" to automatically use the Cilksan library from compiler-rt.

commit eaf246ef85cae33736dc7b015af97267045a6230
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Aug 23 16:20:50 2017 +0000

    [CilkSanitizer] Adding a custom instrumentation pass for CilkSan.

commit 21bf840e3428d2d7934409d05244ee7d3bc1d8c0
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Oct 2 01:46:46 2017 +0000

    [Cilk] Adding support for a constant grainsize value on _Cilk_for loops.

commit b1fddd86f7b47b63cafa7917e016a34a66cc03d7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Aug 25 22:50:40 2017 +0000

    [CilkSanitizer] Integration of CilkSanitizer into the front end.

commit 15031af831f40fc6a0cd670137972d92500f874a
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Oct 4 17:34:27 2017 -0400

    Allow openmp backend flag

commit a74c03783b70009d74a58b002db5233635fc7e15
Author: William S. Moses <gh@wsmoses.com>
Date:   Sun Sep 3 14:32:50 2017 -0400

    Fix failing tests

commit 6eb58f732f8b19addc25692083a8268ace6528fd
Merge: fbd3ab69d5 7e8743f82a
Author: William S. Moses <gh@wsmoses.com>
Date:   Sat Sep 2 17:29:11 2017 -0400

    Merge branch 'ref_clang'

commit 7e8743f82ac7957c66d9c2444996be5b1218673b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Thu Aug 31 23:19:49 2017 +0000

    Mention the expected change to default -std= in future clang releases.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a151ed6454d91d3ae76c56cc0d8d7757f80f931
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 23:03:58 2017 +0000

    Consistently use code font for command-line flags in the release notes.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 243bd1964baf9d79d199e78be1e0627cc1ff0a9b
Author: Richard Smith <richard-llvm@metafoo.co.uk>
Date:   Wed Aug 30 22:58:37 2017 +0000

    Add a couple of release note updates for C++ changes since Clang 4.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312187 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d4ad2c1c46164e9cbfd145814756a48f04f0d53
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:43:04 2017 +0000

    ReleaseNotes: one back-tick too many

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312155 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5680ea4c0a5c26d4782bc303f0f9cab617ff3e3d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:38:07 2017 +0000

    ReleaseNotes: remove another in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312152 91177308-0d34-0410-b5e6-96231b3b80d8

commit 100e1a5cd126979d99318021544f3028365320d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 30 18:36:09 2017 +0000

    Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 544c436321ea8f1b6d245c115faec606de901864
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 29 17:13:55 2017 +0000

    Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@312013 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bc78694a319f80a28ca30e4d9d69c292ee12dee
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:30:43 2017 +0000

    Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311800 91177308-0d34-0410-b5e6-96231b3b80d8

commit b47c628b1c5c88a4db60d2dda6411a2365a45dd1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 25 20:27:58 2017 +0000

    Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311799 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9fe12dfae3fad93aec4ba283d5099ee69e7fc164
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:38:21 2017 +0000

    ReleaseNotes: remove boiler-plate, and minor fixes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311717 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbc4cf960d23ac51b68bfdb9e74d468c3c42fad1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 22:34:18 2017 +0000

    ReleaseNotes: drop in-progress warning

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311716 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7926226534f7c61807c48f53af1ac8d2f6c6c1ca
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 16:21:49 2017 +0000

    Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311671 91177308-0d34-0410-b5e6-96231b3b80d8

commit f19054656eb4fd4fcee1af3389f10337217dce75
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 24 15:49:39 2017 +0000

    Release Notes fix

    Patch by Marek Kurdej!

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311668 91177308-0d34-0410-b5e6-96231b3b80d8

commit a040372df3379f40d35981962e15a1aa85c489e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 20:50:42 2017 +0000

    Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311597 91177308-0d34-0410-b5e6-96231b3b80d8

commit e5cdfe0ea82a4f97d01175d67ac1cb6b87d0a56e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 19:56:39 2017 +0000

    Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311591 91177308-0d34-0410-b5e6-96231b3b80d8

commit 29cf62cecf5ac6fcad53dcd300c3b5c90dfeea77
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 23 16:49:21 2017 +0000

    Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311573 91177308-0d34-0410-b5e6-96231b3b80d8

commit fbd3ab69d5d6dcad967f2244773a192e29657b9b
Author: William S. Moses <gh@wsmoses.com>
Date:   Wed Aug 23 11:54:04 2017 -0400

    Allow tapir command line args to work on LL files

commit 8e4862b5be221092291aaf7ea40d72274acb9d96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:27:59 2017 +0000

    Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311505 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3f860e1c0abf686b67b4c2d5ed9cf93081b85ec
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 22:01:04 2017 +0000

    Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311500 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2f63261a06944758063c3e71129dc3b07eb34509
Author: Anastasia Stulova <anastasia.stulova@arm.com>
Date:   Tue Aug 22 19:29:27 2017 +0000

    [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311485 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43adda39841a77047d3127a439311c79ffbf5234
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 17:41:05 2017 +0000

    ReleaseNotes: coroutines update from Gor

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311475 91177308-0d34-0410-b5e6-96231b3b80d8

commit 230f29b342ef25486459cf3639386a7cc4cc2b96
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 22 16:23:19 2017 +0000

    Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311464 91177308-0d34-0410-b5e6-96231b3b80d8

commit 075c718ac2cfb07582c1db6b688a7e193fe1af46
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:36:03 2017 +0000

    Mention libclang code-completion changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311455 91177308-0d34-0410-b5e6-96231b3b80d8

commit e80de58ee48dad77321c4949f631e6c2430767bb
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:23:54 2017 +0000

    Mention #pragma pack PCH serialization change in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311453 91177308-0d34-0410-b5e6-96231b3b80d8

commit c06c17e34a53b10c80c3732b5ddabf4e45c97df5
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:15:19 2017 +0000

    Mention #pragma clang attribute in the release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311452 91177308-0d34-0410-b5e6-96231b3b80d8

commit b601c1207dbea9346b8353e016b626c37433035a
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Tue Aug 22 13:11:19 2017 +0000

    Mention the ObjC property synthesis changes in release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311451 91177308-0d34-0410-b5e6-96231b3b80d8

commit 168709d3443ba545a95593edc3a9028e26f5ff55
Author: Simon Dardis <simon.dardis@imgtec.com>
Date:   Tue Aug 22 10:01:35 2017 +0000

    [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311441 91177308-0d34-0410-b5e6-96231b3b80d8

commit 923bd8236e1a0c6009de8d932bf9a0da7ec94b58
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 23:40:02 2017 +0000

    Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

     * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

     * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

     * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311410 91177308-0d34-0410-b5e6-96231b3b80d8

commit 16b986343f64f416abbecfa0da51a481e86cf588
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 21 20:27:26 2017 +0000

    Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
     struct S: NonEmptyBase, EmptyBase {
         ...
     };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311378 91177308-0d34-0410-b5e6-96231b3b80d8

commit 606412eb2a44f0513512a1fbba7c5872c420bd43
Author: Martin Storsjo <martin@martin.st>
Date:   Mon Aug 21 18:45:39 2017 +0000

    Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311359 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46ae5f5b0646bad9e7ac46dc84fc74e5fd1f3474
Author: Alex Lorenz <arphaman@gmail.com>
Date:   Mon Aug 21 17:47:51 2017 +0000

    Mention some warning-related additions and changes for LLVM 5
    release notes

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311357 91177308-0d34-0410-b5e6-96231b3b80d8

commit d12acdc7acb1cdfbe746c1841fe139f46ff072e7
Author: Jonathan Coe <jbcoe@me.com>
Date:   Sat Aug 19 01:24:47 2017 +0000

    Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311219 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fe97e5ae9416b6ec66da3cf03b703b3798206d1
Author: Dominic Chen <d.c.ddcc@gmail.com>
Date:   Sat Aug 19 00:09:24 2017 +0000

    Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer.

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311213 91177308-0d34-0410-b5e6-96231b3b80d8

commit 502461a8c938b8ccd464d8d79e3b098b84cae6d3
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 18 20:28:06 2017 +0000

    Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311194 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae3d7833d0fdf5be7149a1708302dc8f4c0ef99b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 17:26:33 2017 +0000

    Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f1c97542ff84f0a49cdc2af11cc30d499cd9adba
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 17 16:48:03 2017 +0000

    Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@311095 91177308-0d34-0410-b5e6-96231b3b80d8

commit af145231499333600c48437ed838de2903172704
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 15 00:24:02 2017 +0000

    Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310902 91177308-0d34-0410-b5e6-96231b3b80d8

commit b52dc49165b05501903ea7355e646467da025c3a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 17:27:59 2017 +0000

    Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310862 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c6fd256d0bccded905f0b05158939291d3f151
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 14 15:48:04 2017 +0000

    Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310848 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ee431111dca9fb627eb19800bcd184c460386d1
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:32:49 2017 +0000

    Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310728 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d12f17ded3f2a4350ed2d2116413d5ca2a54d9a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:30:46 2017 +0000

    Revert r310074 (see PR34067 #4)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310726 91177308-0d34-0410-b5e6-96231b3b80d8

commit e48ea412e6a97503202474c126ab083602bce60f
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:18:44 2017 +0000

    Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310723 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9f61e63493574b244e34c6ac049853e2da887a43
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:16:08 2017 +0000

    Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310722 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b16c8b2d526bff51bcaaee74ddbbf364b9365e7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:14:07 2017 +0000

    Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310721 91177308-0d34-0410-b5e6-96231b3b80d8

commit d84167fd28cd57353c9b02d22bc7d4a4eeabf2e5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 16:07:17 2017 +0000

    Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ae15462ce434ac27321fd104c2969941fc70b71
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 15:58:58 2017 +0000

    Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310719 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4af01079ce2f2d2528d72b8ce5be018f68ea7d73
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:47:32 2017 +0000

    Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310677 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13722d89229f5766535e66bdb82fd876f8ac1c2c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:45:48 2017 +0000

    Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310676 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad0ce25f78a95689d1bbe14512f69badb22a43df
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:41:23 2017 +0000

    Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310675 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6a4d8ba324f430182d7fe0eeeb1227138e4cc5fa
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 11 01:00:59 2017 +0000

    Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310674 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8bca255b155a42f114e73d904babc1c3e441f41b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:38:07 2017 +0000

    Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310395 91177308-0d34-0410-b5e6-96231b3b80d8

commit 09efbb85a6403e480ebf70445d0d6ce1815ed24e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:34:26 2017 +0000

    Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310393 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05a0489dadd09cf9bc6694b63872877a869918ae
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 8 18:15:02 2017 +0000

    Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310390 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8df2b6dec1451e65ab500939da3e9bf394236a42
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:45:55 2017 +0000

    Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310302 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef9c5ea4c7fced70a44b90887b90f72e45441802
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Aug 7 20:15:58 2017 +0000

    Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310294 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22ec3c010bb6e43db3058248057f01389ccdaa13
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 17:19:44 2017 +0000

    Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310074 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9ac40524fe1216e5d8e475e0cd24a2bd2f55cedd
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Aug 4 16:48:43 2017 +0000

    Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@310067 91177308-0d34-0410-b5e6-96231b3b80d8

commit 676729f19a8b81c98a72239633feecdb54ed08cf
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Aug 3 16:12:51 2017 +0000

    Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309954 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78efc4ca88a25e1e0d5971863d6d38633d440fb0
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Aug 3 13:06:01 2017 +0000

    [README] Attempting to clean up README file.

commit c4d55f5857a1e3a7f41bc75914fd43da30ae6326
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Aug 2 17:42:08 2017 +0000

    Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309844 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2239da4a1b47021c70e9a5aa4d0061412ea9f91b
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:54:32 2017 +0000

    Merging r309722:
    ------------------------------------------------------------------------
    r309722 | bruno | 2017-08-01 12:05:25 -0700 (Tue, 01 Aug 2017) | 7 lines

    [Sema] Fix lax conversion between non ext vectors

    r282968 introduced a regression due to the lack of proper testing.
    Re-add lax conversion support between non ext vectors for compound
    assignments and add a test for that.

    rdar://problem/28639467
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90047174d9c34dedc5ac750fcd1fe0d7c738491c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Aug 1 23:32:23 2017 +0000

    Merging r309752:
    ------------------------------------------------------------------------
    r309752 | bruno | 2017-08-01 15:10:36 -0700 (Tue, 01 Aug 2017) | 6 lines

    [Headers][Darwin] Allow #include_next<float.h> to work on Darwin prior to 10.7

    This fixes PR31504 and it's a follow up from adding #include_next<float.h>
    for Darwin in r289018.

    rdar://problem/29856682
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309764 91177308-0d34-0410-b5e6-96231b3b80d8

commit 888cdb53e0f71201556f7d19d59c6bc3a582baf2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:29:29 2017 +0000

    Merging r309382:
    ------------------------------------------------------------------------
    r309382 | rksimon | 2017-07-28 06:47:02 -0700 (Fri, 28 Jul 2017) | 3 lines

    [X86] Add tests showing inability of vector non-temporal load/store intrinsic to force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets, meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.
    ------------------------------------------------------------------------
    Merging r309383:
    ------------------------------------------------------------------------
    r309383 | rksimon | 2017-07-28 07:01:51 -0700 (Fri, 28 Jul 2017) | 1 line

    Strip trailing whitespace. NFCI.
    ------------------------------------------------------------------------
    Merging r309488:
    ------------------------------------------------------------------------
    r309488 | rksimon | 2017-07-29 08:33:34 -0700 (Sat, 29 Jul 2017) | 7 lines

    [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer alignment (PR33830)

    Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores.

    This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected.

    Differential Revision: https://reviews.llvm.org/D35996
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309588 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f5e1cc9f728bac74f436943ed9dab704c426ef5
Author: Hans Wennborg <hans@hanshq.net>
Date:   Mon Jul 31 17:00:55 2017 +0000

    Merging r309503:
    ------------------------------------------------------------------------
    r309503 | rsmith | 2017-07-29 23:31:29 -0700 (Sat, 29 Jul 2017) | 6 lines

    PR33902: Invalidate line number cache when adding more text to existing buffer.

    This led to crashes as the line number cache would report a bogus line number
    for a line of code, and we'd try to find a nonexistent column within the line
    when printing diagnostics.

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309580 91177308-0d34-0410-b5e6-96231b3b80d8

commit 36c4419a8ff1c6ff223dad5cc42ec220d8d4413e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:31:07 2017 +0000

    Merging r309113:
    ------------------------------------------------------------------------
    r309113 | yamaguchi | 2017-07-26 06:36:58 -0700 (Wed, 26 Jul 2017) | 19 lines

    [Bash-autocompletion] Show HelpText with possible flags

    Summary:
    `clang --autocomplete=-std` will show
    ```
    -std:   Language standard to compile for
    -std=   Language standard to compile for
    -stdlib=        C++ standard library to use
    ```
    after this change.

    However, showing HelpText with completion in bash seems super tricky, so
    this feature will be used in other shells (fish, zsh...).

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D35759
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309438 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2e91b76cde21cad4d160e3b078deda5b9b41af2
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 28 21:25:21 2017 +0000

    Merging r309112:
    ------------------------------------------------------------------------
    r309112 | yamaguchi | 2017-07-26 06:30:36 -0700 (Wed, 26 Jul 2017) | 7 lines

    [Bash-completion] Fixed a bug that file doesn't autocompleted after =

    Summary:
    File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
    fixed this bug by checking if $flags contains only a newline or not.

    Differential Revision: https://reviews.llvm.org/D35763
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309435 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5ca288a74db287f2b94e7723f74a224c8f20056a
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 22:08:00 2017 +0000

    Merging r309327:
    ------------------------------------------------------------------------
    r309327 | compnerd | 2017-07-27 14:56:25 -0700 (Thu, 27 Jul 2017) | 5 lines

    Headers: fix _Unwind_{G,S}etGR for non-EHABI targets

    The EHABI definition was being inlined into the users even when EHABI
    was not in use.  Adjust the condition to ensure that the right version
    is defined.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309328 91177308-0d34-0410-b5e6-96231b3b80d8

commit ce8c97e6531764a45df229d82e49a4ddb7980671
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:45:43 2017 +0000

    Merging r309226:
    ------------------------------------------------------------------------
    r309226 | compnerd | 2017-07-26 15:55:23 -0700 (Wed, 26 Jul 2017) | 13 lines

    Headers: improve ARM EHABI coverage of unwind.h

    Ensure that we define the `_Unwind_Control_Block` structure used on ARM
    EHABI targets.  This is needed for building libc++abi with the unwind.h
    from the resource dir.  A minor fallout of this is that we needed to
    create a typedef for _Unwind_Exception to work across ARM EHABI and
    non-EHABI targets.  The structure definitions here are based originally
    on the documentation from ARM under the "Exception Handling ABI for the
    ARM® Architecture" Section 7.2.  They are then adjusted to more closely
    reflect the definition in libunwind from LLVM.  Those changes are
    compatible in layout but permit easier use in libc++abi and help
    maintain compatibility between libunwind and the compiler provided
    definition.
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 269497e3c37764ceb4e87ce9763412aca118c99d
Author: Hans Wennborg <hans@hanshq.net>
Date:   Thu Jul 27 16:20:45 2017 +0000

    Revert r304899 and r304836: It's not clear printing all targets with --version is the right thing to do (see discussion on D33900)

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309285 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7a0666d0f312ee33dba0935018e7b758b89d202c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:35:53 2017 +0000

    Merging r309058:
    ------------------------------------------------------------------------
    r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines

    [CodeGen] Correctly model std::byte's aliasing properties

    std::byte, when defined as an enum, needs to be given special treatment
    with regards to its aliasing properties. An array of std::byte is
    allowed to be used as storage for other types.

    This fixes PR33916.

    Differential Revision: https://reviews.llvm.org/D35824
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3378e4c41b473dcb573f8d7c99fc15eb8e855428
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 26 16:15:18 2017 +0000

    Merging r308824:
    ------------------------------------------------------------------------
    r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines

    [Bash-autocompletion] Fixed typo and add '-' after -Wno

    Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.

    Differential Revision: https://reviews.llvm.org/D35762
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@309130 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbaa84db28323e892ac1188a5f2fb60a88d5b92e
Author: Hans Wennborg <hans@hanshq.net>
Date:   Tue Jul 25 17:10:17 2017 +0000

    Merging r308897:
    ------------------------------------------------------------------------
    r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines

    Work around an MSVC2017 update 3 codegen bug.

    C2017 update 3 produces a clang that crashes when compiling clang. Disabling
    optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
    away.

    Patch from Bruce Dawson <brucedawson@chromium.org>!
    https://reviews.llvm.org/D35757

    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308988 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c3e691e191e1bef23ee65d4c8d8a640a51c6733
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Jul 21 08:17:53 2017 +0000

    Regenerate ClangCommandLineReference.rst

    I ran:

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
        -I../cfe.src/include/clang/Driver -I../llvm.src/include \
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td \
        -o ../cfe.src/docs/ClangCommandLineReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308720 91177308-0d34-0410-b5e6-96231b3b80d8

commit 404119f2dfa99d3fe0efa85c715256c6db19076c
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 14:44:30 2017 +0000

    Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
        ../cfe.src/include/clang/Basic/Attr.td \
        -o ../cfe.src/docs/AttributeReference.rst

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308481 91177308-0d34-0410-b5e6-96231b3b80d8

commit d916f2627f2d2936405d973bf354a5b3cbd4afb8
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 13:02:51 2017 +0000

    Merging r308455:
    ------------------------------------------------------------------------
    r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines

    Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"

    This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
    it's fixed, especially since this landed just before the 5.0 branch.

    > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
    >
    > - When a translation unit is missing terminating #pragma pack (pop) directives.
    > - When entering an included file if the current alignment value as determined
    >   by '#pragma pack' directives is different from the default alignment value.
    > - When leaving an included file that changed the state of the current alignment
    >   value.
    >
    > rdar://10184173
    >
    > Differential Revision: https://reviews.llvm.org/D35484
    ------------------------------------------------------------------------

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308457 91177308-0d34-0410-b5e6-96231b3b80d8

commit cee8fa8282d9c3715bd90910977a7a4767817aa7
Author: Hans Wennborg <hans@hanshq.net>
Date:   Wed Jul 19 12:20:43 2017 +0000

    Creating release_50 branch off revision 308441

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@308444 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb4e7cc1202c13504de32b352091076560be42c6
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:34:50 2017 +0000

    [Cilk] Add dummy cleanup for invokes within detached loop body, to ensure proper structure of exception-handling IR.

commit 4a722288b688a70f9acd9265c9224f447e401e92
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Jul 10 13:08:58 2017 +0000

    [CSI] Re-added the -fcsi flag, which was removed by mistake in a previous merge.

commit 9ea3e02ca03c9cd94166b0a3dfd32cf97aa78b1f
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 29 14:06:41 2017 +0000

    [test/Cilk] Adding some placeholder Cilk tests.

commit ead57d1851d56d70894d05ea2aa33ff184ef3fe6
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:54:01 2017 +0000

    [CGExpr] Removing some debug output.

commit 744a39b686eea71e62f7edfad56f58246649ce42
Author: TB Schardl <neboat@mit.edu>
Date:   Tue Jun 27 21:53:42 2017 +0000

    [CodeGen] Adding code to generate Tapir IR instructions in sync regions.

commit 8c7e6cc423081453cac68c0bf5317a784e50a314
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 17 23:34:30 2017 +0000

    [SemaStmt] Add diagnostic checks on the validity of the initialization statement of a _Cilk_for.

commit 9ab51fd4932804c88dec2d27559de049d0aa130e
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 3 12:42:55 2017 +0000

    Fixed a warning message. NFC.

commit 56f7b9453af4e7915ef7a9a31007780ea160c764
Merge: f6a794052f b4530cfcf7
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Jun 2 15:44:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit f6a794052fa2caef25c3f0fa6251341dbfd52e43
Merge: 9470fafb08 a7fae60ad9
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 31 01:42:41 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit 9470fafb08354ff3635468b6815213fa0d4194d5
Merge: eb9c842a18 530e88891b
Author: TB Schardl <neboat@mit.edu>
Date:   Tue May 30 18:20:26 2017 +0000

    Merge branch 'master' of github.com:llvm-mirror/clang

commit eb9c842a187b13133a795287afd628c71b0e5955
Merge: 16b791b59f 1b66edc097
Author: TB Schardl <neboat@mit.edu>
Date:   Fri May 26 12:12:47 2017 +0000

    Merge branch 'master' of github.com:wsmoses/Cilk-Clang

commit 16b791b59fc3e5aea31b64b637a4eb90b6887068
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 13:11:21 2017 +0000

    [Cilk] Added preliminary support for _Cilk_spawn assignments and declarations.

    This commit adds support for the following statements and expressions:

    var = _Cilk_spawn function-call
    vardecl = _Cilk_spawn function-call

    This support should be easily extensible to support spawned compound
    assignments by means of Cilk inlets.

    To support these statements and expressions, this commit adds a CilkSpawnExpr
    expression type, which has a single child subexpression.  Although
    _Cilk_spawn cannot be applied to any expression, this approach of adding a
    general CilkSpawnExpr seems to be the simplest for adapting the parser to
    handle the cases we care about.  Additional semantic checks should be added
    later to ensure that a CilkSpawnExpr appears only where it makes semantic
    sense.

    _Cilk_spawn assignments and declarations differ from ordinary assignments and
    declarations in their order of evaluation.  For a typical assignment or
    declaration,

    E1 @= E2

    C++17 rules dictate that E2 is evaluated before E1.  When E2 is preceded by
    a _Cilk_spawn, however, we no longer guarantee that E2 is evaluated before
    E1.  (This commit, in fact, ensures that E1 is evaluated before E2 if E2 is
    spawned.)  In effect, the _Cilk_spawn weakens the evaluation-order
    guarantees of the spawned expression and code evaluated afterwards.

    This commit also improves the handling of evaluated expressions around Cilk
    constructs.  These improvements include fixes to the evaluation order of
    arguments to a spawned function, creation of temporary storage for spawned
    function calls, and processing of exception-handling code created for
    spawned expressions.  This commit also reorganizes some Cilk-specific code
    into separate files.

commit 5b2cfc4cea9143fd98494d78b265cba91ac70fea
Author: TB Schardl <neboat@mit.edu>
Date:   Thu May 25 12:58:26 2017 +0000

    [SemaStmtAttr] Permit Clang's loop pragmas on _Cilk_for loops.

commit 1b66edc097bf7855a5cf7b225a4ae8cb182c6d43
Author: William S. Moses <wmoses@mit.edu>
Date:   Mon May 15 01:17:30 2017 -0400

    Add Rhino flag

commit 5942594810265567795884c83b5a37a8cbc98d3e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 03:08:49 2017 +0000

    [CompilerInvocation] Modified compiler flags such that the -ftapir flag uses -O2 as the default optimization level.

commit 05eaad0686e47e2493faa209cf2068cd3cad79b6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:48:34 2017 +0000

    [CilkSpawn] Add better support for spawning function calls to evaluate all function-call arguments before the spawn and to support spawning functions that can throw.

commit 3da2e2d33a79ef5bc1dfebb1d281bb8416f8cbde
Author: TB Schardl <neboat@mit.edu>
Date:   Wed May 10 02:46:41 2017 +0000

    [CilkFor] Add better handling of cilk_for statements to ensure that the induction variable is passed by value to the loop body, even at -O0 compilation.

commit 9331565f7fb12391c…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants