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

[XLC++ 7,8,9] SEGV in 22.locale.messages.mt

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.2.1
    • 4.2.2
    • 22. Localization
    • None
    • AIX 5.3 PowerPC IBM XLC++ 9.0
      AIX 5.3 PowerPC IBM XLC++ 8.0
      AIX 5.3 PowerPC IBM XLC++ 7.0

    • Incorrect Behavior

    Description

      On AIX, when compiled with XLC++ the test 22.locale.messages.mt fails with SIGSEGV or SIGABRT.

      SIGSEGV on XLC++ 7.0 for 12a, 12d
      SIGABRT on XLC++ 7.0 for 15a, 15s, 15S

      SIGSEGV on XLC++ 8.0 for 12a, 12d, 12D, 15a, 15A
      SIGABRT on XLC++ 8.0 for 15S

      SIGSEGV on XLC++ 9.0 for 12a, 15a, 15A
      SIGABRT on XLC++ 9.0 for 15s

      Here is the output for a 12S build...

      $ dbx 22.locale.messages.mt 
      # INFO (S1) (10 lines):
      # TEXT: 
      # COMPILER: IBM VisualAge C++, __IBMCPP__ = 900
      # ENVIRONMENT: powerpc/LP64 running aix-5.3
      # FILE: 22.locale.messages.mt.cpp
      # COMPILED: Apr  9 2008, 16:38:10
      # COMMENT: thread safety
      ############################################################
      
      # CLAUSE: lib.locale.messages
      
      # NOTE (S2) (5 lines):
      # TEXT: executing "gencat rwstdmessages.cat rwstdmessages.msg"
      # CLAUSE: lib.locale.messages
      # FILE: process.cpp
      # LINE: 279
      
      # INFO (S1) (3 lines):
      # TEXT: testing std::messages<charT> with 8 threads, 100000 iterations each
      # CLAUSE: lib.locale.messages
      
      # INFO (S1) (3 lines):
      # TEXT: exercising std::messages<char>
      # CLAUSE: lib.locale.messages
      
      Segmentation fault (core dumped)
      $ dbx 22.locale.messages.mt 
      Type 'help' for help.
      [using memory image in core]
      reading symbolic information ...
      
      Segmentation fault in strchr.strchr at 0x900000000048ec0 ($t2)
      0x900000000048ec0 (strchr+0x140) 8d230001       lbzu   r9,0x1(r3)
      (dbx) where
      strchr.strchr() at 0x900000000048ec0
      _C_get_std_facet(__rw::__rw_facet::_C_facet_type,__rw::__rw_facet*(*)(unsigned long,const char*)) const() at 0x100027970
      __rw_get_facet_by_id__4__rwFRCQ2_3std6localeRCQ2_4__rw13__rw_facet_idPCQ2_3std7codecvtXTcTcTPc_@AF18_13() at 0x100070e54
      do_get__Q2_3std8messagesXTc_CFiN21RCQ2_3std12basic_stringXTcTQ2_3std11char_traitsXTc_TQ2_3std9allocatorXTc__() at 0x1000373ec
      get__Q2_3std8messagesXTc_CFiN21RCQ2_3std12basic_stringXTcTQ2_3std11char_traitsXTc_TQ2_3std9allocatorXTc__() at 0x100037178
      22.locale.messages.mt.void test_get<char>( \
        const std::messages<char>&,int,int,int,const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) \
        (msgs = &(...), cat = 0, set = 4, msgid = 4, dflt = &(...)), line 153 in "22.locale.messages.mt.cpp"
      unnamed block in thread_func(void*)( = 0x0ffffffffffff2e0), line 189 in "22.locale.messages.mt.cpp"
      thread_func(void*)( = 0x0ffffffffffff2e0), line 189 in "22.locale.messages.mt.cpp"
      (dbx) quit
      

      This is a new test for 4.2.1, so it is a regression.

      Attachments

        1. stdcxx-845.patch
          7 kB
          Travis Vitek

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 4h Original Estimate - 4h
                4h
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 9h
                9h