Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-741

[gcc 3.4.6] __rw_itoutf8() too big to be inlined

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • 27. Input/Output
    • None
    • gcc version 3.4.5 20060404 (Red Hat 3.4.6-3)

    • Compiler Warning

    Description

      I get the following warning when building 12[d,D] on trunk.

      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h: In member function `virtual std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > std::collate_byname<wchar_t>::do_transform(const wchar_t*, const wchar_t*) const':
      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h:685: warning: inlining failed in call to 'long unsigned int __rw::__rw_itoutf8(unsigned int, char*)': --param inline-unit-growth limit reached
      /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:325: warning: called from here
      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h:685: warning: inlining failed in call to 'long unsigned int __rw::__rw_itoutf8(unsigned int, char*)': --param inline-unit-growth limit reached
      /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:369: warning: called from here
      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h:685: warning: inlining failed in call to 'long unsigned int __rw::__rw_itoutf8(unsigned int, char*)': --param inline-unit-growth limit reached
      /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:1174: warning: called from here
      In file included from /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:1152:
      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h:685: warning: inlining failed in call to 'long unsigned int __rw::__rw_itoutf8(unsigned int, char*)': --param inline-unit-growth limit reached
      /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:325: warning: called from here
      In file included from /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:1155:
      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h:685: warning: inlining failed in call to 'long unsigned int __rw::__rw_itoutf8(unsigned int, char*)': --param inline-unit-growth limit reached
      /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:369: warning: called from here
      /amd/devco/vitek/stdcxx/trunk/include/loc/_localedef.h:685: warning: inlining failed in call to 'long unsigned int __rw::__rw_itoutf8(unsigned int, char*)': --param inline-unit-growth limit reached
      /amd/devco/vitek/stdcxx/trunk/src/collate.cpp:1174: warning: called from here
      

      This issue is very similar to STDCXX-415. The __rw_itoutf8() function and __rw_utf8toucs4() functions are nearly the same and both are found in the same area of include/loc/_localedef.h. It appears that something has changed that has moved the warning. Perhaps we should consider fixing both functions or just silencing the warning.

      Attachments

        Activity

          People

            sebor Martin Sebor
            vitek Travis Vitek
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 3h
                3h
                Remaining:
                Remaining Estimate - 3h
                3h
                Logged:
                Time Spent - Not Specified
                Not Specified