Author: vitek Date: Mon Aug 4 14:26:00 2008 New Revision: 682512 URL: http://svn.apache.org/viewvc?rev=682512&view=rev Log: 2008-08-04 Travis Vitek <[EMAIL PROTECTED]>
Merge r676102 and r679158 from branches/4.3.x 2008-07-11 Travis Vitek <[EMAIL PROTECTED]> STDCXX-916 * tests/utilities/20.meta.trans.other.cpp (_cond_if_char): Change linkage so that function is found when instantiating cond_if_char. * tests/utilities/20.meta.unary.prop.cpp: Add constructor to type member_t. [_RWSTD_NO_LONG_LONG]: Guard code using long long to avoid compile error when type is not supported. 2008-07-23 Travis Vitek <[EMAIL PROTECTED]> * tests/utilities/20.meta.rel.cpp (test_is_same): Add cv-qual testing. (test_is_base_of): Ditto. (test_is_convertible) [_MSC_VER]: Work around msvc extension that allows conversion from function pointer to void pointer. Modified: stdcxx/trunk/tests/utilities/20.meta.rel.cpp stdcxx/trunk/tests/utilities/20.meta.trans.other.cpp stdcxx/trunk/tests/utilities/20.meta.unary.prop.cpp Modified: stdcxx/trunk/tests/utilities/20.meta.rel.cpp URL: http://svn.apache.org/viewvc/stdcxx/trunk/tests/utilities/20.meta.rel.cpp?rev=682512&r1=682511&r2=682512&view=diff ============================================================================== --- stdcxx/trunk/tests/utilities/20.meta.rel.cpp (original) +++ stdcxx/trunk/tests/utilities/20.meta.rel.cpp Mon Aug 4 14:26:00 2008 @@ -150,6 +150,15 @@ TEST (std::is_same, signed long, unsigned long, false); TEST (std::is_same, unsigned long, signed long, false); + TEST (std::is_same, long, const long, false); + TEST (std::is_same, const long, long, false); + + TEST (std::is_same, long, volatile long, false); + TEST (std::is_same, volatile long, long, false); + + TEST (std::is_same, long, const volatile long, false); + TEST (std::is_same, const volatile long, long, false); + TEST (std::is_same, enum_A, char, false); TEST (std::is_same, enum_A, short, false); TEST (std::is_same, enum_A, int, false); @@ -224,6 +233,21 @@ TEST (std::is_base_of, struct_A, derived_private_t<struct_A>, true); #endif + // cv-qualified + TEST (std::is_base_of, const struct_A, struct_A, true); + TEST (std::is_base_of, struct_A, const struct_A, true); + TEST (std::is_base_of, volatile struct_A, struct_A, true); + TEST (std::is_base_of, struct_A, volatile struct_A, true); + TEST (std::is_base_of, const volatile struct_A, struct_A, true); + TEST (std::is_base_of, struct_A, const volatile struct_A, true); + + TEST (std::is_base_of, const struct_A, derived_t<struct_A>, true); + TEST (std::is_base_of, struct_A, const derived_t<struct_A>, true); + TEST (std::is_base_of, volatile struct_A, derived_t<struct_A>, true); + TEST (std::is_base_of, struct_A, volatile derived_t<struct_A>, true); + TEST (std::is_base_of, const volatile struct_A, derived_t<struct_A>, true); + TEST (std::is_base_of, struct_A, const volatile derived_t<struct_A>, true); + // other combinations should fail TEST (std::is_base_of, signed char, char, false); TEST (std::is_base_of, char, signed char, false); @@ -366,7 +390,14 @@ TEST (std::is_convertible, int (), int (&)(char), false); TEST (std::is_convertible, int*, void*, true); + +#if defined (_MSC_VER) || defined (__IBMCPP__) + // microsoft language extension allows this conversion, and that + // extension is enabled by default. + TEST (std::is_convertible, int (*)(), void*, true); +#else TEST (std::is_convertible, int (*)(), void*, false); +#endif TEST (std::is_convertible, int (*)(derived_t<struct_A>*), Modified: stdcxx/trunk/tests/utilities/20.meta.trans.other.cpp URL: http://svn.apache.org/viewvc/stdcxx/trunk/tests/utilities/20.meta.trans.other.cpp?rev=682512&r1=682511&r2=682512&view=diff ============================================================================== --- stdcxx/trunk/tests/utilities/20.meta.trans.other.cpp (original) +++ stdcxx/trunk/tests/utilities/20.meta.trans.other.cpp Mon Aug 4 14:26:00 2008 @@ -70,12 +70,14 @@ return 0; } -static int _cond_if_char (void* = 0) +// must have external linkage +int _cond_if_char (void*) { return 0; } -static int _cond_if_char (long* = 0) +// must have external linkage +int _cond_if_char (long*) { return 1; } Modified: stdcxx/trunk/tests/utilities/20.meta.unary.prop.cpp URL: http://svn.apache.org/viewvc/stdcxx/trunk/tests/utilities/20.meta.unary.prop.cpp?rev=682512&r1=682511&r2=682512&view=diff ============================================================================== --- stdcxx/trunk/tests/utilities/20.meta.unary.prop.cpp (original) +++ stdcxx/trunk/tests/utilities/20.meta.unary.prop.cpp Mon Aug 4 14:26:00 2008 @@ -96,6 +96,7 @@ template <class T> struct member_t { + member_t (T); T val; }; @@ -933,13 +934,16 @@ TEST (std::is_signed, signed short, true); TEST (std::is_signed, signed int, true); TEST (std::is_signed, signed long, true); - TEST (std::is_signed, signed long long, true); TEST (std::is_signed, unsigned char, false); TEST (std::is_signed, unsigned short, false); TEST (std::is_signed, unsigned int, false); TEST (std::is_signed, unsigned long, false); + +#ifndef _RWSTD_NO_LONG_LONG + TEST (std::is_signed, signed long long, true); TEST (std::is_signed, unsigned long long, false); +#endif TEST (std::is_signed, float, true); TEST (std::is_signed, double, true); @@ -967,13 +971,16 @@ TEST (std::is_unsigned, signed short, false); TEST (std::is_unsigned, signed int, false); TEST (std::is_unsigned, signed long, false); - TEST (std::is_unsigned, signed long long, false); TEST (std::is_unsigned, unsigned char, true); TEST (std::is_unsigned, unsigned short, true); TEST (std::is_unsigned, unsigned int, true); TEST (std::is_unsigned, unsigned long, true); + +#ifndef _RWSTD_NO_LONG_LONG + TEST (std::is_unsigned, signed long long, false); TEST (std::is_unsigned, unsigned long long, true); +#endif TEST (std::is_unsigned, float, false); TEST (std::is_unsigned, double, false);