[libcxx] r310286 - Merging r309296 and r309307:
Hans Wennborg via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 7 12:48:13 PDT 2017
Author: hans
Date: Mon Aug 7 12:48:12 2017
New Revision: 310286
URL: http://llvm.org/viewvc/llvm-project?rev=310286&view=rev
Log:
Merging r309296 and r309307:
------------------------------------------------------------------------
r309296 | marshall | 2017-07-27 10:44:03 -0700 (Thu, 27 Jul 2017) | 1 line
Implement P0739R0: 'Some improvements to class template argument deduction integration into the standard library' This is an API change (not ABI change) due to a late change in the c++17 standard
------------------------------------------------------------------------
------------------------------------------------------------------------
r309307 | marshall | 2017-07-27 11:47:35 -0700 (Thu, 27 Jul 2017) | 1 line
Disable the deduction guide test I added in 309296 for the moment, while I figure out which compilers don't support deduction guides
------------------------------------------------------------------------
Modified:
libcxx/branches/release_50/ (props changed)
libcxx/branches/release_50/include/mutex
libcxx/branches/release_50/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/adopt_lock.pass.cpp
libcxx/branches/release_50/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp
libcxx/branches/release_50/www/cxx1z_status.html
libcxx/branches/release_50/www/cxx2a_status.html
Propchange: libcxx/branches/release_50/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Aug 7 12:48:12 2017
@@ -1,2 +1,2 @@
/libcxx/branches/apple:136569-137939
-/libcxx/trunk:309917,309920
+/libcxx/trunk:309296,309307,309917,309920
Modified: libcxx/branches/release_50/include/mutex
URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_50/include/mutex?rev=310286&r1=310285&r2=310286&view=diff
==============================================================================
--- libcxx/branches/release_50/include/mutex (original)
+++ libcxx/branches/release_50/include/mutex Mon Aug 7 12:48:12 2017
@@ -116,7 +116,7 @@ public:
using mutex_type = Mutex; // If MutexTypes... consists of the single type Mutex
explicit scoped_lock(MutexTypes&... m);
- scoped_lock(MutexTypes&... m, adopt_lock_t);
+ scoped_lock(adopt_lock_t, MutexTypes&... m);
~scoped_lock();
scoped_lock(scoped_lock const&) = delete;
scoped_lock& operator=(scoped_lock const&) = delete;
@@ -500,7 +500,7 @@ public:
~scoped_lock() _LIBCPP_THREAD_SAFETY_ANNOTATION(release_capability()) {__m_.unlock();}
_LIBCPP_INLINE_VISIBILITY
- explicit scoped_lock(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))
+ explicit scoped_lock(adopt_lock_t, mutex_type& __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))
: __m_(__m) {}
scoped_lock(scoped_lock const&) = delete;
@@ -522,7 +522,7 @@ public:
}
_LIBCPP_INLINE_VISIBILITY
- scoped_lock(_MArgs&... __margs, adopt_lock_t)
+ scoped_lock(adopt_lock_t, _MArgs&... __margs)
: __t_(__margs...)
{
}
Modified: libcxx/branches/release_50/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/adopt_lock.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_50/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/adopt_lock.pass.cpp?rev=310286&r1=310285&r2=310286&view=diff
==============================================================================
--- libcxx/branches/release_50/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/adopt_lock.pass.cpp (original)
+++ libcxx/branches/release_50/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/adopt_lock.pass.cpp Mon Aug 7 12:48:12 2017
@@ -14,7 +14,7 @@
// template <class ...Mutex> class scoped_lock;
-// scoped_lock(Mutex&..., adopt_lock_t);
+// scoped_lock(adopt_lock_t, Mutex&...);
#include <mutex>
#include <cassert>
@@ -43,7 +43,7 @@ int main()
using LG = std::scoped_lock<TestMutex>;
m1.lock();
{
- LG lg(m1, std::adopt_lock);
+ LG lg(std::adopt_lock, m1);
assert(m1.locked);
}
assert(!m1.locked);
@@ -53,7 +53,7 @@ int main()
using LG = std::scoped_lock<TestMutex, TestMutex>;
m1.lock(); m2.lock();
{
- LG lg(m1, m2, std::adopt_lock);
+ LG lg(std::adopt_lock, m1, m2);
assert(m1.locked && m2.locked);
}
assert(!m1.locked && !m2.locked);
@@ -63,7 +63,7 @@ int main()
using LG = std::scoped_lock<TestMutex, TestMutex, TestMutex>;
m1.lock(); m2.lock(); m3.lock();
{
- LG lg(m1, m2, m3, std::adopt_lock);
+ LG lg(std::adopt_lock, m1, m2, m3);
assert(m1.locked && m2.locked && m3.locked);
}
assert(!m1.locked && !m2.locked && !m3.locked);
Modified: libcxx/branches/release_50/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_50/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp?rev=310286&r1=310285&r2=310286&view=diff
==============================================================================
--- libcxx/branches/release_50/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp (original)
+++ libcxx/branches/release_50/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp Mon Aug 7 12:48:12 2017
@@ -261,4 +261,13 @@ int main() {
test_copy_ctor_valueless_by_exception();
test_copy_ctor_sfinae();
test_constexpr_copy_ctor_extension();
+#if 0
+// disable this for the moment; it fails on older compilers.
+// Need to figure out which compilers will support it.
+{ // This is the motivating example from P0739R0
+ std::variant<int, double> v1(3);
+ std::variant v2 = v1;
+ (void) v2;
+}
+#endif
}
Modified: libcxx/branches/release_50/www/cxx1z_status.html
URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_50/www/cxx1z_status.html?rev=310286&r1=310285&r2=310286&view=diff
==============================================================================
--- libcxx/branches/release_50/www/cxx1z_status.html (original)
+++ libcxx/branches/release_50/www/cxx1z_status.html Mon Aug 7 12:48:12 2017
@@ -39,6 +39,8 @@
<p>In February 2017, the C++ standard committee approved this draft, and sent it to ISO for approval as C++17</p>
<p>This page shows the status of libc++; the status of clang's support of the language features is <a href="http://clang.llvm.org/cxx_status.html#cxx17">here</a>.</p>
+ <p>Reminder: Features in unreleased drafts of the standard are subject to change.</p>
+
<p>The groups that have contributed papers:
<ul>
<li>LWG - Library working group</li>
@@ -163,7 +165,7 @@
<tr><td><a href="http://wg21.link/P0623R0">P0623R0</a></td><td>LWG</td><td>Final C++17 Parallel Algorithms Fixes</td><td>Kona</td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td><a href="http://wg21.link/P0682R1">P0682R1</a></td><td>LWG</td><td>Repairing elementary string conversions</td><td>Toronto</td><td></td><td></td></tr>
- <tr><td><a href="http://wg21.link/P0739R0">P0739R0</a></td><td>LWG</td><td>Some improvements to class template argument deduction integration into the standard library</td><td>Toronto</td><td></td><td></td></tr>
+ <tr><td><a href="http://wg21.link/P0739R0">P0739R0</a></td><td>LWG</td><td>Some improvements to class template argument deduction integration into the standard library</td><td>Toronto</td><td>Complete</td><td>5.0</td></tr>
<!-- <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> -->
</table>
@@ -497,7 +499,7 @@
<!-- <tr><td></td><td></td><td></td><td></td></tr> -->
</table>
- <p>Last Updated: 25-May-2017</p>
+ <p>Last Updated: 27-Jul-2017</p>
</div>
</body>
</html>
Modified: libcxx/branches/release_50/www/cxx2a_status.html
URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_50/www/cxx2a_status.html?rev=310286&r1=310285&r2=310286&view=diff
==============================================================================
--- libcxx/branches/release_50/www/cxx2a_status.html (original)
+++ libcxx/branches/release_50/www/cxx2a_status.html Mon Aug 7 12:48:12 2017
@@ -38,6 +38,8 @@
<p>In July 2017, the C++ standard committee created a draft for the next version of the C++ standard, known here as "C++2a" (probably to be C++20).</p>
<p>This page shows the status of libc++; the status of clang's support of the language features is <a href="http://clang.llvm.org/cxx_status.html#cxx2a">here</a>.</p>
+ <p>Reminder: Features in unreleased drafts of the standard are subject to change.</p>
+
<p>The groups that have contributed papers:
<ul>
<li>LWG - Library working group</li>
More information about the cfe-commits
mailing list