Issue Details (XML | Word | Printable)

Key: STDCXX-415
Type: Bug Bug
Status: Resolved Resolved
Resolution: Cannot Reproduce
Priority: Minor Minor
Assignee: Travis Vitek
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[gcc 3.3.3] __rw_utf8toucs4() too big to be inlined

Created: 15/May/07 07:45 PM   Updated: 26/Feb/08 10:31 PM
Return to search
Component/s: Build and Installation
Affects Version/s: 4.1.3
Fix Version/s: 4.2.1

Time Tracking:
Original Estimate: 2h
Original Estimate - 2h
Remaining Estimate: 0h
Time Spent - 4.03h
Time Spent: 4.03h
Time Spent - 4.03h

Environment: gcc 3.3.3 (SuSE Linux)

Severity: Compiler Warning
Resolution Date: 26/Feb/08 10:31 PM


 Description  « Hide
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


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Martin Sebor made changes - 23/Aug/07 04:10 AM
Field Original Value New Value
Affects Version/s 4.2 [ 12311945 ]
Affects Version/s 4.1.3 [ 12310191 ]
Fix Version/s 4.2.1 [ 12312690 ]
Martin Sebor made changes - 23/Jan/08 03:50 AM
Severity Compiler Warning
Remaining Estimate 2h [ 7200 ]
Original Estimate 2h [ 7200 ]
Travis Vitek made changes - 15/Feb/08 10:23 PM
Assignee Travis Vitek [ vitek ]
Travis Vitek made changes - 15/Feb/08 10:24 PM
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.

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
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}
Travis Vitek made changes - 26/Feb/08 10:01 PM
Time Spent 0.03h [ 120 ]
Remaining Estimate 2h [ 7200 ] 1.97h [ 7080 ]
Travis Vitek made changes - 26/Feb/08 10:02 PM
Time Spent 0.03h [ 120 ] 2.03h [ 7320 ]
Remaining Estimate 1.97h [ 7080 ] 0h [ 0 ]
Travis Vitek made changes - 26/Feb/08 10:30 PM
Time Spent 2.03h [ 7320 ] 4.03h [ 14520 ]
Travis Vitek made changes - 26/Feb/08 10:31 PM
Resolution Cannot Reproduce [ 5 ]
Status Open [ 1 ] Resolved [ 5 ]