aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/doc/xml/manual/intro.xml6
-rw-r--r--libstdc++-v3/include/std/atomic28
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc10
5 files changed, 53 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ad31fe6..c53240b 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,14 @@
2016-07-20 Jonathan Wakely <jwakely@redhat.com>
+ * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
+ (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
+ (atomic_uint64_t): Define (LWG 2441).
+ * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
+ lines.
+ * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
+ the new types.
+ * doc/xml/manual/intro.xml: Document DR 2441 status.
+
* include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
to use perfect forwarding (LWG 2328).
* testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml
index 6335614..c6b0656 100644
--- a/libstdc++-v3/doc/xml/manual/intro.xml
+++ b/libstdc++-v3/doc/xml/manual/intro.xml
@@ -1011,6 +1011,12 @@ requirements of the license of GCC.
<listitem><para>Add <code>noexcept</code>.
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2441">2441</link>:
+ <emphasis>Exact-width atomic typedefs should be provided</emphasis>
+ </term>
+ <listitem><para>Define the typedefs.
+ </para></listitem></varlistentry>
+
<varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2454">2454</link>:
<emphasis>Add <code>raw_storage_iterator::base()</code> member
</emphasis>
diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic
index 8cbc91f..f8894bf 100644
--- a/libstdc++-v3/include/std/atomic
+++ b/libstdc++-v3/include/std/atomic
@@ -833,6 +833,34 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef atomic<char32_t> atomic_char32_t;
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 2441. Exact-width atomic typedefs should be provided
+
+ /// atomic_int8_t
+ typedef atomic<int8_t> atomic_int8_t;
+
+ /// atomic_uint8_t
+ typedef atomic<uint8_t> atomic_uint8_t;
+
+ /// atomic_int16_t
+ typedef atomic<int16_t> atomic_int16_t;
+
+ /// atomic_uint16_t
+ typedef atomic<uint16_t> atomic_uint16_t;
+
+ /// atomic_int32_t
+ typedef atomic<int32_t> atomic_int32_t;
+
+ /// atomic_uint32_t
+ typedef atomic<uint32_t> atomic_uint32_t;
+
+ /// atomic_int64_t
+ typedef atomic<int64_t> atomic_int64_t;
+
+ /// atomic_uint64_t
+ typedef atomic<uint64_t> atomic_uint64_t;
+
+
/// atomic_int_least8_t
typedef atomic<int_least8_t> atomic_int_least8_t;
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
index a13f66a..1f56f5a 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
@@ -21,6 +21,3 @@
#include <atomic>
// { dg-error "ISO C.. 2011" "" { target *-*-* } 32 }
-
-
-
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
index 32fe2a4..51adbf5 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
@@ -72,4 +72,14 @@ void test01()
using std::atomic_ptrdiff_t;
using std::atomic_intmax_t;
using std::atomic_uintmax_t;
+
+ // DR 2441
+ using std::atomic_int8_t;
+ using std::atomic_uint8_t;
+ using std::atomic_int16_t;
+ using std::atomic_uint16_t;
+ using std::atomic_int32_t;
+ using std::atomic_uint32_t;
+ using std::atomic_int64_t;
+ using std::atomic_uint64_t;
}