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
Travis Vitek logged work - 26/Feb/08 10:00 PM
Time Worked: 0.03h
Verified that function is indeed inlined in release builds.
Travis Vitek logged work - 26/Feb/08 10:01 PM
Time Worked: 2h
Update actual time spent
Travis Vitek logged work - 26/Feb/08 10:30 PM
Time Worked: 2h
Making sure that fixing such an issue would still be binary compatible.