[libcxx] r258287 - Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traits

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 19 20:59:57 PST 2016


Author: ericwf
Date: Tue Jan 19 22:59:57 2016
New Revision: 258287

URL: http://llvm.org/viewvc/llvm-project?rev=258287&view=rev
Log:
Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traits

Modified:
    libcxx/trunk/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
    libcxx/trunk/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
    libcxx/trunk/test/std/language.support/support.types/nullptr_t.pass.cpp
    libcxx/trunk/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp
    libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp

Modified: libcxx/trunk/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp Tue Jan 19 22:59:57 2016
@@ -9,6 +9,9 @@
 
 // <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

Modified: libcxx/trunk/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp (original)
+++ libcxx/trunk/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp Tue Jan 19 22:59:57 2016
@@ -9,6 +9,9 @@
 
 // <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,

Modified: libcxx/trunk/test/std/language.support/support.types/nullptr_t.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.types/nullptr_t.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/language.support/support.types/nullptr_t.pass.cpp (original)
+++ libcxx/trunk/test/std/language.support/support.types/nullptr_t.pass.cpp Tue Jan 19 22:59:57 2016
@@ -57,10 +57,14 @@ void test_comparisons()
 #pragma clang diagnostic ignored "-Wnull-conversion"
 #endif
 void test_nullptr_conversions() {
+// GCC does not accept this due to CWG Defect #1423
+// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1423
+#if defined(__clang__)
     {
         bool b = nullptr;
         assert(!b);
     }
+#endif
     {
         bool b(nullptr);
         assert(!b);

Modified: libcxx/trunk/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp Tue Jan 19 22:59:57 2016
@@ -14,6 +14,9 @@
 // Test that reference wrapper meets the requirements of TriviallyCopyable,
 // CopyConstructible and CopyAssignable.
 
+// Test fails due to use of is_trivially_* trait.
+// XFAIL: gcc-4.9
+
 #include <functional>
 #include <type_traits>
 #include <string>

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp Tue Jan 19 22:59:57 2016
@@ -11,6 +11,8 @@
 
 // is_trivially_assignable
 
+// XFAIL: gcc-4.9
+
 #include <type_traits>
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp Tue Jan 19 22:59:57 2016
@@ -11,6 +11,8 @@
 
 // is_trivially_copy_assignable
 
+// XFAIL: gcc-4.9
+
 #include <type_traits>
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp Tue Jan 19 22:59:57 2016
@@ -11,6 +11,8 @@
 
 // is_trivially_copy_constructible
 
+// XFAIL: gcc-4.9
+
 #include <type_traits>
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp Tue Jan 19 22:59:57 2016
@@ -11,6 +11,8 @@
 
 // is_trivially_copyable
 
+// XFAIL: gcc-4.9
+
 #include <type_traits>
 #include <cassert>
 #include "test_macros.h"

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp Tue Jan 19 22:59:57 2016
@@ -11,6 +11,8 @@
 
 // is_trivially_move_assignable
 
+// XFAIL: gcc-4.9
+
 #include <type_traits>
 #include "test_macros.h"
 

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp Tue Jan 19 22:59:57 2016
@@ -11,6 +11,8 @@
 
 // is_trivially_move_constructible
 
+// XFAIL: gcc-4.9
+
 #include <type_traits>
 #include "test_macros.h"
 
@@ -60,7 +62,7 @@ struct A
     A(const A&);
 };
 
-#if __has_feature(cxx_defaulted_functions)
+#if TEST_STD_VER >= 11
 
 struct MoveOnly1
 {
@@ -89,7 +91,7 @@ int main()
     test_is_trivially_move_constructible<const int*>();
     test_is_trivially_move_constructible<bit_zero>();
 
-#if __has_feature(cxx_defaulted_functions)
+#if TEST_STD_VER >= 11
     static_assert(!std::is_trivially_move_constructible<MoveOnly1>::value, "");
     static_assert( std::is_trivially_move_constructible<MoveOnly2>::value, "");
 #endif

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp Tue Jan 19 22:59:57 2016
@@ -13,9 +13,14 @@
 
 // pair(const pair&) = default;
 
+// Doesn't pass due to use of is_trivially_* trait.
+// XFAIL: gcc-4.9
+
 #include <utility>
 #include <cassert>
 
+#include "test_macros.h"
+
 int main()
 {
     {
@@ -28,7 +33,7 @@ int main()
 
     static_assert((std::is_trivially_copy_constructible<std::pair<int, int> >::value), "");
 
-#if _LIBCPP_STD_VER > 11
+#if TEST_STD_VER > 11
     {
         typedef std::pair<int, short> P1;
         constexpr P1 p1(3, 4);

Modified: libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp?rev=258287&r1=258286&r2=258287&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp Tue Jan 19 22:59:57 2016
@@ -13,9 +13,15 @@
 
 // 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 (ie float).
+// XFAIL: gcc-4.9
+
 // NOTE: The SFINAE on the default constructor is tested in
 //       default-sfinae.pass.cpp
 
+
 #include <utility>
 #include <type_traits>
 #include <cassert>




More information about the cfe-commits mailing list