Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traits

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258287 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier
2016-01-20 04:59:57 +00:00
parent b8f31a1c14
commit c8b24c6d54
12 changed files with 39 additions and 3 deletions

View File

@@ -9,6 +9,9 @@
// <iterator> // <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>, // template <class T, class charT = char, class traits = char_traits<charT>,
// class Distance = ptrdiff_t> // class Distance = ptrdiff_t>
// class istream_iterator // class istream_iterator

View File

@@ -9,6 +9,9 @@
// <iterator> // <iterator>
// Test fails due to use of is_trivially_* trait.
// XFAIL: gcc-4.9
// template<class charT, class traits = char_traits<charT> > // template<class charT, class traits = char_traits<charT> >
// class istreambuf_iterator // class istreambuf_iterator
// : public iterator<input_iterator_tag, charT, // : public iterator<input_iterator_tag, charT,

View File

@@ -57,10 +57,14 @@ void test_comparisons()
#pragma clang diagnostic ignored "-Wnull-conversion" #pragma clang diagnostic ignored "-Wnull-conversion"
#endif #endif
void test_nullptr_conversions() { 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; bool b = nullptr;
assert(!b); assert(!b);
} }
#endif
{ {
bool b(nullptr); bool b(nullptr);
assert(!b); assert(!b);

View File

@@ -14,6 +14,9 @@
// Test that reference wrapper meets the requirements of TriviallyCopyable, // Test that reference wrapper meets the requirements of TriviallyCopyable,
// CopyConstructible and CopyAssignable. // CopyConstructible and CopyAssignable.
// Test fails due to use of is_trivially_* trait.
// XFAIL: gcc-4.9
#include <functional> #include <functional>
#include <type_traits> #include <type_traits>
#include <string> #include <string>

View File

@@ -11,6 +11,8 @@
// is_trivially_assignable // is_trivially_assignable
// XFAIL: gcc-4.9
#include <type_traits> #include <type_traits>
#include "test_macros.h" #include "test_macros.h"

View File

@@ -11,6 +11,8 @@
// is_trivially_copy_assignable // is_trivially_copy_assignable
// XFAIL: gcc-4.9
#include <type_traits> #include <type_traits>
#include "test_macros.h" #include "test_macros.h"

View File

@@ -11,6 +11,8 @@
// is_trivially_copy_constructible // is_trivially_copy_constructible
// XFAIL: gcc-4.9
#include <type_traits> #include <type_traits>
#include "test_macros.h" #include "test_macros.h"

View File

@@ -11,6 +11,8 @@
// is_trivially_copyable // is_trivially_copyable
// XFAIL: gcc-4.9
#include <type_traits> #include <type_traits>
#include <cassert> #include <cassert>
#include "test_macros.h" #include "test_macros.h"

View File

@@ -11,6 +11,8 @@
// is_trivially_move_assignable // is_trivially_move_assignable
// XFAIL: gcc-4.9
#include <type_traits> #include <type_traits>
#include "test_macros.h" #include "test_macros.h"

View File

@@ -11,6 +11,8 @@
// is_trivially_move_constructible // is_trivially_move_constructible
// XFAIL: gcc-4.9
#include <type_traits> #include <type_traits>
#include "test_macros.h" #include "test_macros.h"
@@ -60,7 +62,7 @@ struct A
A(const A&); A(const A&);
}; };
#if __has_feature(cxx_defaulted_functions) #if TEST_STD_VER >= 11
struct MoveOnly1 struct MoveOnly1
{ {
@@ -89,7 +91,7 @@ int main()
test_is_trivially_move_constructible<const int*>(); test_is_trivially_move_constructible<const int*>();
test_is_trivially_move_constructible<bit_zero>(); 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<MoveOnly1>::value, "");
static_assert( std::is_trivially_move_constructible<MoveOnly2>::value, ""); static_assert( std::is_trivially_move_constructible<MoveOnly2>::value, "");
#endif #endif

View File

@@ -13,9 +13,14 @@
// pair(const pair&) = default; // pair(const pair&) = default;
// Doesn't pass due to use of is_trivially_* trait.
// XFAIL: gcc-4.9
#include <utility> #include <utility>
#include <cassert> #include <cassert>
#include "test_macros.h"
int main() int main()
{ {
{ {
@@ -28,7 +33,7 @@ int main()
static_assert((std::is_trivially_copy_constructible<std::pair<int, int> >::value), ""); 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; typedef std::pair<int, short> P1;
constexpr P1 p1(3, 4); constexpr P1 p1(3, 4);

View File

@@ -13,9 +13,15 @@
// constexpr pair(); // 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 // NOTE: The SFINAE on the default constructor is tested in
// default-sfinae.pass.cpp // default-sfinae.pass.cpp
#include <utility> #include <utility>
#include <type_traits> #include <type_traits>
#include <cassert> #include <cassert>