[libcxx] r216561 - Mark test types for <atomic> nothrow default constructible. Patch from Steve MacKenzie.

Eric Fiselier eric at efcs.ca
Wed Aug 27 10:15:23 PDT 2014


I got the LWG issue number wrong in the commit message.
The correct issue number is 2165.

Sorry
/Eric


On Wed, Aug 27, 2014 at 11:00 AM, Eric Fiselier <eric at efcs.ca> wrote:

> Author: ericwf
> Date: Wed Aug 27 12:00:11 2014
> New Revision: 216561
>
> URL: http://llvm.org/viewvc/llvm-project?rev=216561&view=rev
> Log:
> Mark test types for <atomic> nothrow default constructible. Patch from
> Steve MacKenzie.
>
> The way the standard currently specifies the default constructor for
> atomic<T>
> requires T to be nothrow default constructible. This patch makes our test
> types
> meet this requirement.
>
> Note: The nothrow default constructible requirment is subject to the
> outcome of
> LWG issue 1265.
>
> Modified:
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp
>
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -55,7 +55,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
> (original)
> +++
> 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
> @@ -62,7 +62,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -55,7 +55,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
> (original)
> +++
> 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
> @@ -62,7 +62,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -40,7 +40,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -42,7 +42,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -75,7 +75,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>      A(const A& a) : i(a.i) {}
>      A(const volatile A& a) : i(a.i) {}
>
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -79,7 +79,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>      A(const A& a) : i(a.i) {}
>      A(const volatile A& a) : i(a.i) {}
>
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -75,7 +75,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>      A(const A& a) : i(a.i) {}
>      A(const volatile A& a) : i(a.i) {}
>
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -80,7 +80,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>      A(const A& a) : i(a.i) {}
>      A(const volatile A& a) : i(a.i) {}
>
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -38,7 +38,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -38,7 +38,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -38,7 +38,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -38,7 +38,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
> Modified:
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp
> URL:
> 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
>
> ==============================================================================
> ---
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp
> (original)
> +++
> libcxx/trunk/test/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp
> Wed Aug 27 12:00:11 2014
> @@ -38,7 +38,7 @@ struct A
>  {
>      int i;
>
> -    explicit A(int d = 0) : i(d) {}
> +    explicit A(int d = 0) noexcept {i=d;}
>
>      friend bool operator==(const A& x, const A& y)
>          {return x.i == y.i;}
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140827/c8ead513/attachment.html>


More information about the cfe-commits mailing list