Author: vitek
Date: Wed Jul 16 11:01:52 2008
New Revision: 677364
URL: http://svn.apache.org/viewvc?rev=677364&view=rev
Log:
2008-07-16 Travis Vitek <[EMAIL PROTECTED]>
* tests/utilities/20.meta.rel.cpp (test_is_convertible): Assert
function pointer is not implicitly convertible to void*.
* include/rw/_meta_prop.cpp [!_RWSTD_TT_HAS_TRIVIAL_DTOR]: Switch
conditional so that all reference types appear to have trivial
destructors as required.
[__GNUG__]: Work around __has_trivial_destructor() failure to see
reference types as having a trivial destructor as required.
Modified:
stdcxx/branches/4.3.x/include/rw/_meta_prop.h
stdcxx/branches/4.3.x/tests/utilities/20.meta.rel.cpp
Modified: stdcxx/branches/4.3.x/include/rw/_meta_prop.h
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_prop.h?rev=677364&r1=677363&r2=677364&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_prop.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_prop.h Wed Jul 16 11:01:52 2008
@@ -371,7 +371,20 @@
#ifndef _RWSTD_TT_HAS_TRIVIAL_DTOR
# define _RWSTD_TT_HAS_TRIVIAL_DTOR(T) \
- _RW::__rw_is_pod<T>::value && !_RW::__rw_is_reference<T>::value
+ _RW::__rw_is_pod<T>::value && _RW::__rw_is_reference<T>::value
+#elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
+
+template <class _TypeT>
+struct __rw_has_trivial_dtor_impl
+{
+ enum { _C_value = __rw_is_reference<_TypeT>::value
+ || _RWSTD_TT_HAS_TRIVIAL_DTOR (_TypeT) };
+};
+
+# undef _RWSTD_TT_HAS_TRIVIAL_DTOR
+# define _RWSTD_TT_HAS_TRIVIAL_DTOR(T) \
+ _RW::__rw_has_trivial_dtor_impl<T>::_C_value
+
#elif defined (__EDG_VERSION__)
template <class _TypeT>
Modified: stdcxx/branches/4.3.x/tests/utilities/20.meta.rel.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/tests/utilities/20.meta.rel.cpp?rev=677364&r1=677363&r2=677364&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/tests/utilities/20.meta.rel.cpp (original)
+++ stdcxx/branches/4.3.x/tests/utilities/20.meta.rel.cpp Wed Jul 16 11:01:52
2008
@@ -340,7 +340,7 @@
TEST (std::is_convertible, int (), int (&)(char), false);
TEST (std::is_convertible, int*, void*, true);
- TEST (std::is_convertible, int (*)(), void*, true);
+ TEST (std::is_convertible, int (*)(), void*, false);
TEST (std::is_convertible,
int (*)(derived_<struct_A>*),