Эх сурвалжийг харах

[libc++] Do not specify the underlying type of memory_order

Summary:
This breaks ABI for folks using -fshort-enums, and does not really buy
us anything.

http://llvm.org/PR40977

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits, zoecarver

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355521 91177308-0d34-0410-b5e6-96231b3b80d8
Louis Dionne 6 жил өмнө
parent
commit
30a22af836
1 өөрчлөгдсөн 2 нэмэгдсэн , 8 устгасан
  1. 2 8
      include/atomic

+ 2 - 8
include/atomic

@@ -586,7 +586,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 #if _LIBCPP_STD_VER > 17
 #if _LIBCPP_STD_VER > 17
 
 
-enum class memory_order: unsigned {
+enum class memory_order {
   relaxed, consume, acquire, release, acq_rel, seq_cst
   relaxed, consume, acquire, release, acq_rel, seq_cst
 };
 };
 
 
@@ -597,9 +597,6 @@ inline constexpr auto memory_order_release = memory_order::release;
 inline constexpr auto memory_order_acq_rel = memory_order::acq_rel;
 inline constexpr auto memory_order_acq_rel = memory_order::acq_rel;
 inline constexpr auto memory_order_seq_cst = memory_order::seq_cst;
 inline constexpr auto memory_order_seq_cst = memory_order::seq_cst;
 
 
-static_assert((is_same<underlying_type<memory_order>::type,
-			   unsigned>::value), "Underlying type differs from unsigned unexpectedly");
-
 #else
 #else
 
 
 typedef enum memory_order {
 typedef enum memory_order {
@@ -607,12 +604,9 @@ typedef enum memory_order {
   memory_order_release, memory_order_acq_rel, memory_order_seq_cst
   memory_order_release, memory_order_acq_rel, memory_order_seq_cst
 } memory_order;
 } memory_order;
 
 
-static_assert((is_same<underlying_type<memory_order>::type,
-			   unsigned>::value), "Underlying type differs from unsigned unexpectedly");
-
 #endif // _LIBCPP_STD_VER > 17
 #endif // _LIBCPP_STD_VER > 17
 
 
-typedef underlying_type<memory_order>::type __memory_order_underlying_t; // unsigned
+typedef underlying_type<memory_order>::type __memory_order_underlying_t;
 
 
 
 
 #if defined(_LIBCPP_HAS_GCC_ATOMIC_IMP) || \
 #if defined(_LIBCPP_HAS_GCC_ATOMIC_IMP) || \