You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Travis Vitek (JIRA)" <ji...@apache.org> on 2008/02/15 23:26:07 UTC

[jira] Updated: (STDCXX-415) [gcc 3.3.3] __rw_utf8toucs4() too big to be inlined

     [ https://issues.apache.org/jira/browse/STDCXX-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-415:
--------------------------------

    Description: 
We're getting a few warnings for the __rw_utf8toucs4() inline function indicating that the function is too big to be inlined. It might be a good idea to split it up into two, a simple inline wrapper to handle the common case for single and perhaps two-byte characters and a bigger out-of-line implementation to handle the more complicated multibyte characters.

{noformat}
c++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align  -fPIC  /amd/devco/sebor/stdcxx/src/wctype.cpp
gencat rwstderr.cat /amd/devco/sebor/stdcxx/src/rwstderr.msg
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual int 
   std::codecvt_byname<wchar_t, char, __mbstate_t>::do_length(__mbstate_t&, 
   const char*, const char*, unsigned int) const':
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1065,
                 from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1621:
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual 
   std::codecvt_base::result std::codecvt_byname<wchar_t, char, 
   __mbstate_t>::do_in(__mbstate_t&, const char*, const char*, const char*&, 
   wchar_t*, wchar_t*, wchar_t*&) const':
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1396:
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
{noformat}

  was:
We're getting a few warnings for the __rw_utf8toucs4() inline function indicating that the function is too big to be inlined. It might be a good idea to split it up into two, a simple inline wrapper to handle the common case for single and perhaps two-byte characters and a bigger out-of-line implementation to handle the more complicated multibyte characters.

c++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align  -fPIC  /amd/devco/sebor/stdcxx/src/wctype.cpp
gencat rwstderr.cat /amd/devco/sebor/stdcxx/src/rwstderr.msg
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual int 
   std::codecvt_byname<wchar_t, char, __mbstate_t>::do_length(__mbstate_t&, 
   const char*, const char*, unsigned int) const':
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1065,
                 from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1621:
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual 
   std::codecvt_base::result std::codecvt_byname<wchar_t, char, 
   __mbstate_t>::do_in(__mbstate_t&, const char*, const char*, const char*&, 
   wchar_t*, wchar_t*, wchar_t*&) const':
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1396:
/amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
   in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
   char*)'
/amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here



> [gcc 3.3.3] __rw_utf8toucs4() too big to be inlined
> ---------------------------------------------------
>
>                 Key: STDCXX-415
>                 URL: https://issues.apache.org/jira/browse/STDCXX-415
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 4.1.3
>         Environment: gcc 3.3.3 (SuSE Linux)
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> We're getting a few warnings for the __rw_utf8toucs4() inline function indicating that the function is too big to be inlined. It might be a good idea to split it up into two, a simple inline wrapper to handle the common case for single and perhaps two-byte characters and a bigger out-of-line implementation to handle the more complicated multibyte characters.
> {noformat}
> c++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align  -fPIC  /amd/devco/sebor/stdcxx/src/wctype.cpp
> gencat rwstderr.cat /amd/devco/sebor/stdcxx/src/rwstderr.msg
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual int 
>    std::codecvt_byname<wchar_t, char, __mbstate_t>::do_length(__mbstate_t&, 
>    const char*, const char*, unsigned int) const':
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
> In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1065,
>                  from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1621:
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:964: warning: called from here
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp: In member function `virtual 
>    std::codecvt_base::result std::codecvt_byname<wchar_t, char, 
>    __mbstate_t>::do_in(__mbstate_t&, const char*, const char*, const char*&, 
>    wchar_t*, wchar_t*, wchar_t*&) const':
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
> In file included from /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:1396:
> /amd/devco/sebor/stdcxx/include/loc/_localedef.h:735: warning: inlining failed 
>    in call to `const char* __rw::__rw_utf8toucs4(int*, const char*, const 
>    char*)'
> /amd/devco/sebor/stdcxx/src/wcodecvt.cpp:736: warning: called from here
> {noformat}

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