You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2008/01/06 19:51:34 UTC

[jira] Created: (STDCXX-687) [gcc] use string __builtins

[gcc] use string __builtins
---------------------------

                 Key: STDCXX-687
                 URL: https://issues.apache.org/jira/browse/STDCXX-687
             Project: C++ Standard Library
          Issue Type: Sub-task
    Affects Versions: 4.2.0, 4.1.4, 4.1.3, 4.1.2
            Reporter: Martin Sebor
             Fix For: 4.2.1


The following gcc builtin equivalents of the C string functions would be useful in the implementation of std::char_traits:

__builtin_memcpy: char_traits::copy()
__builtin_memcmp: char_traits::compare()
__builtin_memmove: char_traits::move()
__builtin_memset: char_traits::assign()
__builtin_strlen: char_traits::length()

Unfortunately, as of gcc 4.2.2, there is no builtin equivalent of memchr() which is used in char_traits::find(), so using the builtins won't let us get away from #including the <cstring> header to bring in the declaration of the function (thus reducing namespace pollution caused by all the other symbols declared in the header).

There also are no builtins for the wide character counterparts of any of these functions (such as wmemcmp or wcslen).

See the following page for more details:
http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Other-Builtins.html#Other-Builtins

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (STDCXX-687) [gcc] use string __builtins

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12556409#action_12556409 ] 

Martin Sebor commented on STDCXX-687:
-------------------------------------

__builtin_memchr was added here: http://gcc.gnu.org/viewcvs?view=rev&revision=124617
It can be expected to be included in gcc 4.3.

> [gcc] use string __builtins
> ---------------------------
>
>                 Key: STDCXX-687
>                 URL: https://issues.apache.org/jira/browse/STDCXX-687
>             Project: C++ Standard Library
>          Issue Type: Sub-task
>    Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0
>            Reporter: Martin Sebor
>             Fix For: 4.2.1
>
>
> The following gcc builtin equivalents of the C string functions would be useful in the implementation of std::char_traits:
> __builtin_memcpy: char_traits::copy()
> __builtin_memcmp: char_traits::compare()
> __builtin_memmove: char_traits::move()
> __builtin_memset: char_traits::assign()
> __builtin_strlen: char_traits::length()
> Unfortunately, as of gcc 4.2.2, there is no builtin equivalent of memchr() which is used in char_traits::find(), so using the builtins won't let us get away from #including the <cstring> header to bring in the declaration of the function (thus reducing namespace pollution caused by all the other symbols declared in the header).
> There also are no builtins for the wide character counterparts of any of these functions (such as wmemcmp or wcslen).
> See the following page for more details:
> http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Other-Builtins.html#Other-Builtins

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.