<div dir="ltr"><div><div><div>I got the LWG issue number wrong in the commit message.<br>The correct issue number is 2165.<br></div><br></div>Sorry<br></div>/Eric<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Aug 27, 2014 at 11:00 AM, Eric Fiselier <span dir="ltr"><<a href="mailto:eric@efcs.ca" target="_blank">eric@efcs.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: ericwf<br>
Date: Wed Aug 27 12:00:11 2014<br>
New Revision: 216561<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=216561&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=216561&view=rev</a><br>
Log:<br>
Mark test types for <atomic> nothrow default constructible. Patch from Steve MacKenzie.<br>
<br>
The way the standard currently specifies the default constructor for atomic<T><br>
requires T to be nothrow default constructible. This patch makes our test types<br>
meet this requirement.<br>
<br>
Note: The nothrow default constructible requirment is subject to the outcome of<br>
LWG issue 1265.<br>
<br>
Modified:<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp<br>
    libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -55,7 +55,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -62,7 +62,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -55,7 +55,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -62,7 +62,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -40,7 +40,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -42,7 +42,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -75,7 +75,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
     A(const A& a) : i(a.i) {}<br>
     A(const volatile A& a) : i(a.i) {}<br>
<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -79,7 +79,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
     A(const A& a) : i(a.i) {}<br>
     A(const volatile A& a) : i(a.i) {}<br>
<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -75,7 +75,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
     A(const A& a) : i(a.i) {}<br>
     A(const volatile A& a) : i(a.i) {}<br>
<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -80,7 +80,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
     A(const A& a) : i(a.i) {}<br>
     A(const volatile A& a) : i(a.i) {}<br>
<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -38,7 +38,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -38,7 +38,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -38,7 +38,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -38,7 +38,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
Modified: libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp?rev=216561&r1=216560&r2=216561&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp (original)<br>
+++ libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp Wed Aug 27 12:00:11 2014<br>
@@ -38,7 +38,7 @@ struct A<br>
 {<br>
     int i;<br>
<br>
-    explicit A(int d = 0) : i(d) {}<br>
+    explicit A(int d = 0) noexcept {i=d;}<br>
<br>
     friend bool operator==(const A& x, const A& y)<br>
         {return x.i == y.i;}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>