Author: sebor Date: Mon Feb 11 13:30:42 2008 New Revision: 620615 URL: http://svn.apache.org/viewvc?rev=620615&view=rev Log: 2008-02-11 Martin Sebor <[EMAIL PROTECTED]>
STDCXX-687 * include/rw/_traits.h [__GNUG__](_RWSTD_MEMCPY, _RWSTD_MEMCMP, _RWSTD_MEMMOVE, _RWSTD_MEMSET, _RWSTD_STRLEN): #defined macros to the corresponding gcc __builtins. [4 < __GNUG__ || 3 <= __GNUC_MINOR__](_RWSTD_MEMCHR): #defined to __builtin_memchr starting with this version of the compiler. Modified: stdcxx/trunk/include/rw/_traits.h Modified: stdcxx/trunk/include/rw/_traits.h URL: http://svn.apache.org/viewvc/stdcxx/trunk/include/rw/_traits.h?rev=620615&r1=620614&r2=620615&view=diff ============================================================================== --- stdcxx/trunk/include/rw/_traits.h (original) +++ stdcxx/trunk/include/rw/_traits.h Mon Feb 11 13:30:42 2008 @@ -25,7 +25,7 @@ * implied. See the License for the specific language governing * permissions and limitations under the License. * - * Copyright 1994-2006 Rogue Wave Software. + * Copyright 1994-2008 Rogue Wave Software, Inc. * **************************************************************************/ @@ -84,15 +84,33 @@ # define _RWSTD_WMEMSET _RW::__rw_wmemset # define _RWSTD_WCSLEN _RW::__rw_wcslen #else // if !defined (_RWSTDDEBUG) && !defined (_RWSTD_EDG_ECCP) -# include _RWSTD_CSTRING // for memcmp(), ... -# include _RWSTD_CWCHAR // wmemcmp(), ... -# define _RWSTD_MEMCPY _RWSTD_C::memcpy -# define _RWSTD_MEMCMP _RWSTD_C::memcmp -# define _RWSTD_MEMMOVE _RWSTD_C::memmove -# define _RWSTD_MEMSET _RWSTD_C::memset -# define _RWSTD_STRLEN _RWSTD_C::strlen -# define _RWSTD_MEMCHR _RWSTD_C::memchr +# if 4 <= __GNUG__ + // use gcc 4.x intrinsic functions +# define _RWSTD_MEMCPY __builtin_memcpy +# define _RWSTD_MEMCMP __builtin_memcmp +# define _RWSTD_MEMMOVE __builtin_memmove +# define _RWSTD_MEMSET __builtin_memset +# define _RWSTD_STRLEN __builtin_strlen + +# if 4 < __GNUG__ || 3 <= __GNUC_MINOR__ + // __builtin_memchr() is only available in gcc 4.3 and beyond +# define _RWSTD_MEMCHR __builtin_memchr +# else // gcc < 4.3 +# include _RWSTD_CSTRING // for memchr() +# endif // gcc 4.3 +# else // gcc < 4.0 +# include _RWSTD_CSTRING // for memcmp(), ... + +# define _RWSTD_MEMCPY _RWSTD_C::memcpy +# define _RWSTD_MEMCMP _RWSTD_C::memcmp +# define _RWSTD_MEMMOVE _RWSTD_C::memmove +# define _RWSTD_MEMSET _RWSTD_C::memset +# define _RWSTD_STRLEN _RWSTD_C::strlen +# define _RWSTD_MEMCHR _RWSTD_C::memchr +# endif // gcc 4.0 + +# include _RWSTD_CWCHAR // wmemcmp(), ... # ifndef _RWSTD_NO_WMEMCPY # define _RWSTD_WMEMCPY _RWSTD_C::wmemcpy