[libc++] Purge mentions of GCC 4 from the test suite

We don't support GCC 4 and older according to the documentation, so
we should pretend it doesn't exist.

This is a re-application of r372787.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@372916 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/libcxx/diagnostics/enable_nodiscard.fail.cpp b/test/libcxx/diagnostics/enable_nodiscard.fail.cpp
index 0cd74be..b42e4c4 100644
--- a/test/libcxx/diagnostics/enable_nodiscard.fail.cpp
+++ b/test/libcxx/diagnostics/enable_nodiscard.fail.cpp
@@ -14,7 +14,7 @@
 // UNSUPPORTED: c++98, c++03
 
 // GCC 7 is the first version to introduce [[nodiscard]]
-// UNSUPPORTED: gcc-4.9, gcc-5, gcc-6
+// UNSUPPORTED: gcc-5, gcc-6
 
 // MODULES_DEFINES: _LIBCPP_ENABLE_NODISCARD
 #define _LIBCPP_ENABLE_NODISCARD
diff --git a/test/libcxx/diagnostics/enable_nodiscard_disable_after_cxx17.fail.cpp b/test/libcxx/diagnostics/enable_nodiscard_disable_after_cxx17.fail.cpp
index 530ea54..72fbc01 100644
--- a/test/libcxx/diagnostics/enable_nodiscard_disable_after_cxx17.fail.cpp
+++ b/test/libcxx/diagnostics/enable_nodiscard_disable_after_cxx17.fail.cpp
@@ -10,7 +10,7 @@
 // UNSUPPORTED: c++98, c++03
 
 // GCC 7 is the first version to introduce [[nodiscard]]
-// UNSUPPORTED: gcc-4.9, gcc-5, gcc-6
+// UNSUPPORTED: gcc-5, gcc-6
 
 // Test that _LIBCPP_DISABLE_NODISCARD_EXT only disables _LIBCPP_NODISCARD_EXT
 // and not _LIBCPP_NODISCARD_AFTER_CXX17.
diff --git a/test/libcxx/diagnostics/enable_nodiscard_disable_nodiscard_ext.fail.cpp b/test/libcxx/diagnostics/enable_nodiscard_disable_nodiscard_ext.fail.cpp
index 56df924..65e5e15 100644
--- a/test/libcxx/diagnostics/enable_nodiscard_disable_nodiscard_ext.fail.cpp
+++ b/test/libcxx/diagnostics/enable_nodiscard_disable_nodiscard_ext.fail.cpp
@@ -10,7 +10,7 @@
 // UNSUPPORTED: c++98, c++03
 
 // GCC 7 is the first version to introduce [[nodiscard]]
-// UNSUPPORTED: gcc-4.9, gcc-5, gcc-6
+// UNSUPPORTED: gcc-5, gcc-6
 
 
 // MODULES_DEFINES: _LIBCPP_ENABLE_NODISCARD
diff --git a/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp b/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
index 43cc080..dd02a3d 100644
--- a/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
+++ b/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
@@ -10,7 +10,7 @@
 // UNSUPPORTED: c++98, c++03
 
 // GCC versions prior to 7.0 don't provide the required [[nodiscard]] attribute.
-// UNSUPPORTED: gcc-4, gcc-5, gcc-6
+// UNSUPPORTED: gcc-5, gcc-6
 
 // AppleClang9 doesn't yet support C++17's implicitly synthesized deduction
 // guides from existing ctors, needed by default_searcher() below.
diff --git a/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp b/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp
index 00c1910..65fe65a 100644
--- a/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp
+++ b/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp
@@ -6,9 +6,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-// The test fails due to the missing is_trivially_constructible intrinsic.
-// XFAIL: gcc-4.9
-
 // The test suite needs to define the ABI macros on the command line when
 // modules are enabled.
 // UNSUPPORTED: -fmodules
diff --git a/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp b/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp
index 1086011..1357157 100644
--- a/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp
+++ b/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp
@@ -6,9 +6,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-// The test fails due to the missing is_trivially_constructible intrinsic.
-// XFAIL: gcc-4.9
-
 // <utility>
 
 // template <class T1, class T2> struct pair
diff --git a/test/std/experimental/simd/simd.cons/broadcast.pass.cpp b/test/std/experimental/simd/simd.cons/broadcast.pass.cpp
index cf038e3..57a6cd5 100644
--- a/test/std/experimental/simd/simd.cons/broadcast.pass.cpp
+++ b/test/std/experimental/simd/simd.cons/broadcast.pass.cpp
@@ -8,9 +8,6 @@
 
 // UNSUPPORTED: c++98, c++03, c++11, c++14
 
-// See GCC PR63723.
-// UNSUPPORTED: gcc-4.9
-
 // <experimental/simd>
 //
 // [simd.class]
diff --git a/test/std/experimental/simd/simd.cons/generator.pass.cpp b/test/std/experimental/simd/simd.cons/generator.pass.cpp
index 500ccce..7b7c883 100644
--- a/test/std/experimental/simd/simd.cons/generator.pass.cpp
+++ b/test/std/experimental/simd/simd.cons/generator.pass.cpp
@@ -8,9 +8,6 @@
 
 // UNSUPPORTED: c++98, c++03, c++11, c++14
 
-// See GCC PR63723.
-// UNSUPPORTED: gcc-4.9
-
 // <experimental/simd>
 //
 // [simd.class]
diff --git a/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp b/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
index 5170b1e..aa00a0d 100644
--- a/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
+++ b/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
@@ -8,9 +8,6 @@
 
 // <iterator>
 
-// Test fails due to use of is_trivially_* trait.
-// XFAIL: gcc-4.9
-
 // template <class T, class charT = char, class traits = char_traits<charT>,
 //           class Distance = ptrdiff_t>
 // class istream_iterator
diff --git a/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp b/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
index a6c6435..c2f323b 100644
--- a/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
+++ b/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
@@ -8,9 +8,6 @@
 
 // <iterator>
 
-// Test fails due to use of is_trivially_* trait.
-// XFAIL: gcc-4.9
-
 // template<class charT, class traits = char_traits<charT> >
 // class istreambuf_iterator
 //     : public iterator<input_iterator_tag, charT,
diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
index d69c28b..c4e1071 100644
--- a/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
+++ b/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
@@ -15,10 +15,6 @@
 // (except clang-3.6 which temporarily enabled sized-deallocation)
 // UNSUPPORTED: clang, apple-clang
 
-// NOTE: GCC 4.9.1 does not support sized-deallocation in C++14. However
-// GCC 5.1 does.
-// XFAIL: gcc-4.7, gcc-4.8, gcc-4.9
-
 #include <new>
 #include <cstddef>
 #include <cstdlib>
diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
index deb17d1..819d62a 100644
--- a/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
+++ b/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
@@ -15,10 +15,6 @@
 // (except clang-3.6 which temporarily enabled sized-deallocation)
 // UNSUPPORTED: clang, apple-clang
 
-// NOTE: GCC 4.9.1 does not support sized-deallocation in C++14. However
-// GCC 5.1 does.
-// XFAIL: gcc-4.7, gcc-4.8, gcc-4.9
-
 #include <new>
 #include <cstddef>
 #include <cstdlib>
diff --git a/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp b/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp
index 17eef26..d8d7544 100644
--- a/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp
+++ b/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp
@@ -13,9 +13,6 @@
 // Test that reference wrapper meets the requirements of CopyConstructible and
 // CopyAssignable, and TriviallyCopyable (starting in C++14).
 
-// Test fails due to use of is_trivially_* trait.
-// XFAIL: gcc-4.9 && c++14
-
 #include <functional>
 #include <type_traits>
 #include <string>
diff --git a/test/std/utilities/memory/specialized.algorithms/specialized.addressof/constexpr_addressof.pass.cpp b/test/std/utilities/memory/specialized.algorithms/specialized.addressof/constexpr_addressof.pass.cpp
index 2aabf81..ae8a162 100644
--- a/test/std/utilities/memory/specialized.algorithms/specialized.addressof/constexpr_addressof.pass.cpp
+++ b/test/std/utilities/memory/specialized.algorithms/specialized.addressof/constexpr_addressof.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++98, c++03, c++11, c++14
-// XFAIL: gcc-4, gcc-5, gcc-6
+// XFAIL: gcc-5, gcc-6
 
 // <memory>
 
diff --git a/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.pass.cpp b/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.pass.cpp
index e6f7012..8202fd7 100644
--- a/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.pass.cpp
+++ b/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++98, c++03, c++11, c++14
-// UNSUPPORTED: clang-3, clang-4, clang-5, apple-clang, gcc-4, gcc-5, gcc-6
+// UNSUPPORTED: clang-3, clang-4, clang-5, apple-clang, gcc-5, gcc-6
 
 // type_traits
 
diff --git a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp
index 124480c..5113651 100644
--- a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp
+++ b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp
@@ -10,8 +10,6 @@
 
 // is_trivially_assignable
 
-// XFAIL: gcc-4.9
-
 #include <type_traits>
 #include "test_macros.h"
 
diff --git a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp
index 91fbf69..17104f4 100644
--- a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp
+++ b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp
@@ -10,8 +10,6 @@
 
 // is_trivially_copy_assignable
 
-// XFAIL: gcc-4.9
-
 #include <type_traits>
 #include "test_macros.h"
 
diff --git a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp
index 5744d2c..09647c7 100644
--- a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp
+++ b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp
@@ -10,8 +10,6 @@
 
 // is_trivially_copy_constructible
 
-// XFAIL: gcc-4.9
-
 #include <type_traits>
 #include "test_macros.h"
 
diff --git a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp
index 0a91efd..b599ae5 100644
--- a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp
+++ b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp
@@ -10,8 +10,6 @@
 
 // is_trivially_move_assignable
 
-// XFAIL: gcc-4.9
-
 #include <type_traits>
 #include "test_macros.h"
 
diff --git a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp
index 78c10a1..3503648 100644
--- a/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp
+++ b/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp
@@ -10,8 +10,6 @@
 
 // is_trivially_move_constructible
 
-// XFAIL: gcc-4.9
-
 #include <type_traits>
 #include "test_macros.h"
 
diff --git a/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp b/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp
index f83ce7f..3062bc7 100644
--- a/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp
+++ b/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp
@@ -14,7 +14,6 @@
 //   struct tuple_size<tuple<Types...>>
 //     : public integral_constant<size_t, sizeof...(Types)> { };
 
-// XFAIL: gcc-4.9
 // UNSUPPORTED: c++98, c++03
 
 #include <tuple>
diff --git a/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp b/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp
index aad0030..62e584d 100644
--- a/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp
+++ b/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp
@@ -14,7 +14,6 @@
 //   class tuple_size<tuple<Types...>>
 //     : public integral_constant<size_t, sizeof...(Types)> { };
 
-// XFAIL: gcc-4.9
 // UNSUPPORTED: c++98, c++03
 
 #include <tuple>
diff --git a/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp b/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
index de3730e..049c220 100644
--- a/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
+++ b/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
@@ -12,11 +12,6 @@
 
 // constexpr pair();
 
-// This test doesn't pass due to a constexpr bug in GCC 4.9 that fails
-// to initialize any type without a user provided constructor in a constant
-// expression (e.g. float).
-// XFAIL: gcc-4.9
-
 // NOTE: The SFINAE on the default constructor is tested in
 //       default-sfinae.pass.cpp
 
diff --git a/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp b/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp
index 6841f28..be7c0a8 100644
--- a/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp
+++ b/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp
@@ -13,9 +13,6 @@
 // pair(pair const&) = default;
 // pair(pair&&) = default;
 
-// Doesn't pass due to use of is_trivially_* trait.
-// XFAIL: gcc-4.9
-
 #include <utility>
 #include <cassert>
 
diff --git a/test/support/test.workarounds/c1xx_broken_is_trivially_copyable.pass.cpp b/test/support/test.workarounds/c1xx_broken_is_trivially_copyable.pass.cpp
index ef6a82c..24d6869 100644
--- a/test/support/test.workarounds/c1xx_broken_is_trivially_copyable.pass.cpp
+++ b/test/support/test.workarounds/c1xx_broken_is_trivially_copyable.pass.cpp
@@ -8,10 +8,6 @@
 
 // UNSUPPORTED: c++98, c++03
 
-// This workaround option is specific to MSVC's C1XX, so we don't care that
-// it isn't set for older GCC versions.
-// XFAIL: gcc-4.9
-
 // Verify TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE.
 
 #include <type_traits>