STL_MSFT created this revision.

[libcxx] [test] Fix Clang -Wunused-local-typedef, part 1/3.

Mark typedefs as LIBCPP_ONLY when their only usage is within 
LIBCPP_STATIC_ASSERT.

test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp
Additionally deal with conditional compilation.

test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
Additionally deal with typedefs used by other typedefs.


https://reviews.llvm.org/D29135

Files:
  test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp
  test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
  test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp
  test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
  test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp
  
test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
  test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
  
test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp
  test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
  
test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
  
test/std/containers/associative/multiset/multiset.cons/default_noexcept.pass.cpp
  test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
  
test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp
  test/std/containers/associative/multiset/multiset.cons/move_noexcept.pass.cpp
  
test/std/containers/associative/multiset/multiset.special/swap_noexcept.pass.cpp
  test/std/containers/associative/set/set.cons/default_noexcept.pass.cpp
  test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
  test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp
  test/std/containers/associative/set/set.cons/move_noexcept.pass.cpp
  test/std/containers/associative/set/set.special/swap_noexcept.pass.cpp
  
test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp
  
test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp
  test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp
  
test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp
  test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp
  test/std/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp
  test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
  test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
  test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp
  test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp
  
test/std/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp
  
test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
  
test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
  
test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp
  
test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
  test/std/containers/sequences/list/list.cons/default_noexcept.pass.cpp
  test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
  test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
  test/std/containers/sequences/list/list.cons/move_noexcept.pass.cpp
  test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp
  test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
  test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
  test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
  test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
  test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp
  test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
  test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/default_noexcept.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp
  
test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/move_noexcept.pass.cpp
  test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp
  
test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default_noexcept.pass.cpp
  
test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp
  
test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp
  
test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_noexcept.pass.cpp
  
test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp
  
test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default_noexcept.pass.cpp
  
test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp
  
test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp
  
test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_noexcept.pass.cpp
  
test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_noexcept.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/default_noexcept.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp
  
test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/move_noexcept.pass.cpp
  test/std/containers/unord/unord.set/unord.set.swap/swap_noexcept.pass.cpp
  test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp
  
test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp

Index: test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
+++ test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
@@ -60,7 +60,7 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> C;
+        LIBCPP_ONLY(typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
Index: test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp
+++ test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::basic_string<char, std::char_traits<char>, some_alloc<char>> C;
+        LIBCPP_ONLY(typedef std::basic_string<char, std::char_traits<char>, some_alloc<char>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/unord/unord.set/unord.set.swap/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.set/unord.set.swap/swap_noexcept.pass.cpp
+++ test/std/containers/unord/unord.set/unord.set.swap/swap_noexcept.pass.cpp
@@ -126,13 +126,13 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -180,7 +180,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for hash, nothrow swap for comp
-    typedef std::unordered_set<MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C;
+    LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/unord/unord.set/unord.set.cnstr/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.set/unord.set.cnstr/move_noexcept.pass.cpp
+++ test/std/containers/unord/unord.set/unord.set.cnstr/move_noexcept.pass.cpp
@@ -43,17 +43,17 @@
 int main()
 {
     {
-        typedef std::unordered_set<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp
+++ test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp
@@ -55,8 +55,8 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp
+++ test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp
@@ -54,12 +54,12 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_set<MoveOnly, some_hash<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, some_hash<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                                                         some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                                                         some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/unord/unord.set/unord.set.cnstr/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.set/unord.set.cnstr/default_noexcept.pass.cpp
+++ test/std/containers/unord/unord.set/unord.set.cnstr/default_noexcept.pass.cpp
@@ -47,12 +47,12 @@
 int main()
 {
     {
-        typedef std::unordered_set<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_set<MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_noexcept.pass.cpp
@@ -126,13 +126,13 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -180,7 +180,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for hash, nothrow swap for comp
-    typedef std::unordered_multiset<MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C;
+    LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_noexcept.pass.cpp
@@ -43,17 +43,17 @@
 int main()
 {
     {
-        typedef std::unordered_multiset<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp
@@ -55,8 +55,8 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp
@@ -54,12 +54,12 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, some_hash<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, some_hash<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                                                         some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                                                         some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default_noexcept.pass.cpp
@@ -47,12 +47,12 @@
 int main()
 {
     {
-        typedef std::unordered_multiset<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multiset<MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp
@@ -125,13 +125,13 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -178,7 +178,7 @@
     static_assert( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     { // NOT always equal allocator, nothrow swap for hash, nothrow swap for comp
-    typedef std::unordered_multimap<MoveOnly, MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<V>> C;
+    LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<V>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_noexcept.pass.cpp
@@ -43,17 +43,17 @@
 int main()
 {
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp
@@ -55,8 +55,8 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp
@@ -54,12 +54,12 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, some_hash<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, some_hash<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                                                         some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                                                         some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default_noexcept.pass.cpp
+++ test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default_noexcept.pass.cpp
@@ -47,12 +47,12 @@
 int main()
 {
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp
+++ test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp
@@ -126,13 +126,13 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<MapType>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<MapType>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<MapType>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<MapType>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -180,7 +180,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for hash, nothrow swap for comp
-    typedef std::unordered_map<MoveOnly, MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<MapType>> C;
+    LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, some_hash2<MoveOnly>, some_comp2<MoveOnly>, some_alloc3<MapType>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/unord/unord.map/unord.map.cnstr/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.map/unord.map.cnstr/move_noexcept.pass.cpp
+++ test/std/containers/unord/unord.map/unord.map.cnstr/move_noexcept.pass.cpp
@@ -43,17 +43,17 @@
 int main()
 {
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp
+++ test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp
@@ -55,8 +55,8 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                          std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp
+++ test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp
@@ -54,12 +54,12 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, some_hash<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, some_hash<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                                                         some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                                                         some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/unord/unord.map/unord.map.cnstr/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/unord/unord.map/unord.map.cnstr/default_noexcept.pass.cpp
+++ test/std/containers/unord/unord.map/unord.map.cnstr/default_noexcept.pass.cpp
@@ -47,12 +47,12 @@
 int main()
 {
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
-                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C;
+        LIBCPP_ONLY(typedef std::unordered_map<MoveOnly, MoveOnly, std::hash<MoveOnly>,
+                           std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp
+++ test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp
@@ -61,7 +61,7 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::vector<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
Index: test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::vector<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp
+++ test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp
@@ -56,29 +56,30 @@
 int main()
 {
     {
-        typedef std::vector<bool> C;
+        LIBCPP_ONLY(typedef std::vector<bool> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::vector<bool, test_allocator<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, test_allocator<bool>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::vector<bool, other_allocator<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, other_allocator<bool>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::vector<bool, some_alloc<bool>> C;
 #if TEST_STD_VER >= 14
     //  In c++14, if POCS is set, swapping the allocator is required not to throw
+        LIBCPP_ONLY(typedef std::vector<bool, some_alloc<bool>> C);
         LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
 #else
+        typedef std::vector<bool, some_alloc<bool>> C;
         static_assert(!noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
 #endif
     }
 #if TEST_STD_VER >= 14
     {
-        typedef std::vector<bool, some_alloc2<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, some_alloc2<bool>> C);
     //  if the allocators are always equal, then the swap can be noexcept
         LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
Index: test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
+++ test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
@@ -32,23 +32,24 @@
 int main()
 {
     {
-        typedef std::vector<bool> C;
+        LIBCPP_ONLY(typedef std::vector<bool> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::vector<bool, test_allocator<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, test_allocator<bool>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::vector<bool, other_allocator<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, other_allocator<bool>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::vector<bool, some_alloc<bool>> C;
     //  In C++17, move constructors for allocators are not allowed to throw
 #if TEST_STD_VER > 14
+        LIBCPP_ONLY(typedef std::vector<bool, some_alloc<bool>> C);
         LIBCPP_STATIC_ASSERT( std::is_nothrow_move_constructible<C>::value, "");
 #else
+        typedef std::vector<bool, some_alloc<bool>> C;
         static_assert(!std::is_nothrow_move_constructible<C>::value, "");
 #endif
     }
Index: test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
+++ test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
@@ -60,28 +60,29 @@
 int main()
 {
     {
-        typedef std::vector<bool> C;
+        LIBCPP_ONLY(typedef std::vector<bool> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
         typedef std::vector<bool, test_allocator<bool>> C;
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::vector<bool, other_allocator<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, other_allocator<bool>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::vector<bool, some_alloc<bool>> C;
 #if TEST_STD_VER > 14
+        LIBCPP_ONLY(typedef std::vector<bool, some_alloc<bool>> C);
         LIBCPP_STATIC_ASSERT( std::is_nothrow_move_assignable<C>::value, "");
 #else
+        typedef std::vector<bool, some_alloc<bool>> C;
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
 #endif
     }
 #if TEST_STD_VER > 14
     {  // POCMA false, is_always_equal true
-        typedef std::vector<bool, some_alloc2<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, some_alloc2<bool>> C);
         LIBCPP_STATIC_ASSERT( std::is_nothrow_move_assignable<C>::value, "");
     }
     {  // POCMA false, is_always_equal false
Index: test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
+++ test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
@@ -42,7 +42,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::vector<bool, some_alloc<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, some_alloc<bool>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
+++ test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
@@ -32,11 +32,11 @@
 int main()
 {
     {
-        typedef std::vector<bool> C;
+        LIBCPP_ONLY(typedef std::vector<bool> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::vector<bool, test_allocator<bool>> C;
+        LIBCPP_ONLY(typedef std::vector<bool, test_allocator<bool>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp
+++ test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp
@@ -60,11 +60,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
Index: test/std/containers/sequences/list/list.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/list/list.cons/move_noexcept.pass.cpp
+++ test/std/containers/sequences/list/list.cons/move_noexcept.pass.cpp
@@ -33,15 +33,15 @@
 int main()
 {
     {
-        typedef std::list<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
@@ -43,11 +43,11 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::list<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable<C>::value, "");
     }
 }
Index: test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::list<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/sequences/list/list.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/list/list.cons/default_noexcept.pass.cpp
+++ test/std/containers/sequences/list/list.cons/default_noexcept.pass.cpp
@@ -33,11 +33,11 @@
 int main()
 {
     {
-        typedef std::list<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::list<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::list<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
+++ test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
@@ -60,11 +60,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
Index: test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp
+++ test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp
@@ -33,15 +33,15 @@
 int main()
 {
     {
-        typedef std::forward_list<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
@@ -43,11 +43,11 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable<C>::value, "");
     }
 }
Index: test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp
+++ test/std/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp
@@ -33,11 +33,11 @@
 int main()
 {
     {
-        typedef std::forward_list<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp
+++ test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp
@@ -60,11 +60,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
Index: test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp
+++ test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp
@@ -33,15 +33,15 @@
 int main()
 {
     {
-        typedef std::deque<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
@@ -43,11 +43,11 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable<C>::value, "");
     }
 }
Index: test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, some_alloc<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp
+++ test/std/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp
@@ -33,11 +33,11 @@
 int main()
 {
     {
-        typedef std::deque<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::deque<MoveOnly, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp
+++ test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp
@@ -25,7 +25,7 @@
 int main()
 {
     {
-        typedef std::stack<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::stack<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
 }
Index: test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp
+++ test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp
@@ -25,7 +25,7 @@
 int main()
 {
     {
-        typedef std::stack<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::stack<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
 }
Index: test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp
+++ test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp
@@ -25,7 +25,7 @@
 int main()
 {
     {
-        typedef std::queue<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::queue<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
 }
Index: test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp
+++ test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp
@@ -25,7 +25,7 @@
 int main()
 {
     {
-        typedef std::queue<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::queue<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
 }
Index: test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp
+++ test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp
@@ -26,7 +26,7 @@
 int main()
 {
     {
-        typedef std::priority_queue<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::priority_queue<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
 }
Index: test/std/containers/associative/set/set.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/set/set.special/swap_noexcept.pass.cpp
+++ test/std/containers/associative/set/set.special/swap_noexcept.pass.cpp
@@ -99,11 +99,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::set<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::set<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -130,7 +130,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for comp
-    typedef std::set<MoveOnly, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C;
+    LIBCPP_ONLY(typedef std::set<MoveOnly, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/associative/set/set.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/set/set.cons/move_noexcept.pass.cpp
+++ test/std/containers/associative/set/set.cons/move_noexcept.pass.cpp
@@ -35,15 +35,15 @@
 int main()
 {
     {
-        typedef std::set<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::set<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::set<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp
@@ -45,7 +45,7 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::set<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::set<MoveOnly, some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/associative/set/set.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/set/set.cons/default_noexcept.pass.cpp
+++ test/std/containers/associative/set/set.cons/default_noexcept.pass.cpp
@@ -37,11 +37,11 @@
 int main()
 {
     {
-        typedef std::set<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::set<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::set<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/multiset/multiset.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multiset/multiset.special/swap_noexcept.pass.cpp
+++ test/std/containers/associative/multiset/multiset.special/swap_noexcept.pass.cpp
@@ -99,11 +99,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::multiset<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::multiset<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -130,7 +130,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for comp
-    typedef std::multiset<MoveOnly, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C;
+    LIBCPP_ONLY(typedef std::multiset<MoveOnly, some_comp2<MoveOnly>, some_alloc3<MoveOnly>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/associative/multiset/multiset.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multiset/multiset.cons/move_noexcept.pass.cpp
+++ test/std/containers/associative/multiset/multiset.cons/move_noexcept.pass.cpp
@@ -35,15 +35,15 @@
 int main()
 {
     {
-        typedef std::multiset<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::multiset<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::multiset<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp
@@ -45,7 +45,7 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::multiset<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, std::less<MoveOnly>, other_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
@@ -43,7 +43,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::multiset<MoveOnly, some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/associative/multiset/multiset.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multiset/multiset.cons/default_noexcept.pass.cpp
+++ test/std/containers/associative/multiset/multiset.cons/default_noexcept.pass.cpp
@@ -37,11 +37,11 @@
 int main()
 {
     {
-        typedef std::multiset<MoveOnly> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::multiset<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multiset<MoveOnly, std::less<MoveOnly>, test_allocator<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
+++ test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
@@ -100,11 +100,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -131,7 +131,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for comp
-    typedef std::multimap<MoveOnly, MoveOnly, some_comp2<MoveOnly>, some_alloc3<V>> C;
+    LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, some_comp2<MoveOnly>, some_alloc3<V>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
+++ test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
@@ -34,17 +34,17 @@
 
 int main()
 {
-    typedef std::pair<const MoveOnly, MoveOnly> V;
+    LIBCPP_ONLY(typedef std::pair<const MoveOnly, MoveOnly> V);
     {
-        typedef std::multimap<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp
@@ -46,7 +46,7 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
@@ -44,7 +44,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
+++ test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
@@ -38,11 +38,11 @@
 {
     typedef std::pair<const MoveOnly, MoveOnly> V;
     {
-        typedef std::multimap<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::multimap<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp
+++ test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp
@@ -100,11 +100,11 @@
         static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
     {
@@ -131,7 +131,7 @@
     }
 
     { // NOT always equal allocator, nothrow swap for comp
-    typedef std::map<MoveOnly, MoveOnly, some_comp2<MoveOnly>, some_alloc3<V>> C;
+    LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, some_comp2<MoveOnly>, some_alloc3<V>> C);
     LIBCPP_STATIC_ASSERT( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
     }
 #endif
Index: test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
+++ test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
@@ -34,17 +34,17 @@
 
 int main()
 {
-    typedef std::pair<const MoveOnly, MoveOnly> V;
+    LIBCPP_ONLY(typedef std::pair<const MoveOnly, MoveOnly> V);
     {
-        typedef std::map<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_constructible<C>::value, "");
     }
     {
Index: test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp
+++ test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp
@@ -46,7 +46,7 @@
         static_assert(!std::is_nothrow_move_assignable<C>::value, "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, other_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable<C>::value, "");
     }
     {
Index: test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
+++ test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
@@ -44,7 +44,7 @@
         static_assert(std::is_nothrow_destructible<C>::value, "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, some_comp<MoveOnly>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, some_comp<MoveOnly>> C);
         LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<C>::value, "");
     }
 }
Index: test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp
===================================================================
--- test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp
+++ test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp
@@ -38,11 +38,11 @@
 {
     typedef std::pair<const MoveOnly, MoveOnly> V;
     {
-        typedef std::map<MoveOnly, MoveOnly> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
-        typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C;
+        LIBCPP_ONLY(typedef std::map<MoveOnly, MoveOnly, std::less<MoveOnly>, test_allocator<V>> C);
         LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<C>::value, "");
     }
     {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D29135: [libcxx... Stephan T. Lavavej via Phabricator via cfe-commits

Reply via email to