Fix or move tests with non-standard assumptions

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@302862 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier
2017-05-12 01:44:51 +00:00
parent 40e4fb68ac
commit 2d31e197db
5 changed files with 74 additions and 16 deletions

View File

@@ -0,0 +1,32 @@
//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test that <bitset> includes <cstddef>, <string>, <stdexcept> and <iosfwd>
#include <bitset>
#ifndef _LIBCPP_CSTDDEF
#error <cstddef> has not been included
#endif
#ifndef _LIBCPP_STRING
#error <string> has not been included
#endif
#ifndef _LIBCPP_STDEXCEPT
#error <stdexcept> has not been included
#endif
#ifndef _LIBCPP_IOSFWD
#error <iosfwd> has not been included
#endif
int main()
{
}

View File

@@ -0,0 +1,46 @@
//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <tuple>
// template <class... Types> class tuple;
// UNSUPPORTED: c++98, c++03
// This is not a portable test
#include <tuple>
struct A {};
struct B {};
int main()
{
{
typedef std::tuple<int, A> T;
static_assert((sizeof(T) == sizeof(int)), "");
}
{
typedef std::tuple<A, int> T;
static_assert((sizeof(T) == sizeof(int)), "");
}
{
typedef std::tuple<A, int, B> T;
static_assert((sizeof(T) == sizeof(int)), "");
}
{
typedef std::tuple<A, B, int> T;
static_assert((sizeof(T) == sizeof(int)), "");
}
{
typedef std::tuple<int, A, B> T;
static_assert((sizeof(T) == sizeof(int)), "");
}
}