[libc++] Try fixing tests that fail on GCC 5 and older

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@372782 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp b/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
index 19719a7..44010d1 100644
--- a/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
+++ b/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
@@ -8,6 +8,9 @@
 
 // UNSUPPORTED: c++98, c++03
 
+// Before GCC 6, this trait fails. See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // <type_traits>
 
 // __is_implicitly_default_constructible<Tp>
diff --git a/test/std/language.support/support.dynamic/nothrow_t.fail.cpp b/test/std/language.support/support.dynamic/nothrow_t.fail.cpp
index c1092c3..7fba5e3 100644
--- a/test/std/language.support/support.dynamic/nothrow_t.fail.cpp
+++ b/test/std/language.support/support.dynamic/nothrow_t.fail.cpp
@@ -9,6 +9,10 @@
 
 // UNSUPPORTED: c++98, c++03
 
+// Before GCC 6, aggregate initialization kicks in.
+// See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // struct nothrow_t {
 //   explicit nothrow_t() = default;
 // };
diff --git a/test/std/thread/thread.mutex/thread.lock/types.fail.cpp b/test/std/thread/thread.mutex/thread.lock/types.fail.cpp
index 56fbc90..ffe14ca 100644
--- a/test/std/thread/thread.mutex/thread.lock/types.fail.cpp
+++ b/test/std/thread/thread.mutex/thread.lock/types.fail.cpp
@@ -8,9 +8,12 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++98, c++03
-
 // UNSUPPORTED: libcpp-has-no-threads
 
+// Before GCC 6, aggregate initialization kicks in.
+// See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // <mutex>
 
 // struct defer_lock_t { explicit defer_lock_t() = default; };
diff --git a/test/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp b/test/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp
index 2b8d09a..a5d5249 100644
--- a/test/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp
+++ b/test/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp
@@ -8,6 +8,10 @@
 
 // UNSUPPORTED: c++98, c++03
 
+// Before GCC 6, aggregate initialization kicks in.
+// See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // <memory>
 
 // struct allocator_arg_t { explicit allocator_arg_t() = default; };
diff --git a/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.fail.cpp b/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.fail.cpp
index f25450a..f867a5f 100644
--- a/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.fail.cpp
+++ b/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.fail.cpp
@@ -8,6 +8,10 @@
 
 // UNSUPPORTED: c++98, c++03
 
+// Before GCC 6, aggregate initialization kicks in.
+// See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // <tuple>
 
 // template <class... Types> class tuple;
diff --git a/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp b/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp
index 90b3313..1ba14ef 100644
--- a/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp
+++ b/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp
@@ -8,6 +8,10 @@
 
 // UNSUPPORTED: c++98, c++03
 
+// Before GCC 6, aggregate initialization kicks in.
+// See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // <utility>
 
 // struct piecewise_construct_t { explicit piecewise_construct_t() = default; };
diff --git a/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp b/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp
index 332fe33..17478e5 100644
--- a/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp
+++ b/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp
@@ -8,6 +8,10 @@
 
 // UNSUPPORTED: c++98, c++03
 
+// Before GCC 6, aggregate initialization kicks in.
+// See https://stackoverflow.com/q/41799015/627587.
+// UNSUPPORTED: gcc-4, gcc-5
+
 // <utility>
 
 // template <class T1, class T2> struct pair