Details
Description
On AIX, when compiled with XLC++, the test 22.locale.num.get.mt.cpp fails with a SIGABRT. This failure is not likely to be an indication of a thread safety problem because it happens consistently for non-reentrant builds.
This is a new test for 4.2.1, so it is considered a regression.
$ 22.locale.num.get.mt # INFO (S1) (10 lines): # TEXT: # COMPILER: IBM VisualAge C++, __IBMCPP__ = 900 # ENVIRONMENT: powerpc/LP64 running aix-5.3 # FILE: 22.locale.num.get.mt.cpp # COMPILED: Apr 9 2008, 16:38:10 # COMMENT: thread safety ############################################################ # CLAUSE: lib.locale.num.get # NOTE (S2) (5 lines): # TEXT: executing "locale -a > /tmp/tmpfile-w1Upya" # CLAUSE: lib.locale.num.get # FILE: process.cpp # LINE: 279 # INFO (S1) (3 lines): # TEXT: testing std::num_get<charT> with 8 threads, 100000 iterations each, in 32 locales \ { "C" "POSIX" "AR_DZ.UTF-8" "AR_BH" "AR_AA.UTF-8" "AR_BH.UTF-8" "AR_AE.UTF-8" \ "AR_DZ" "AR_EG.UTF-8" "AR_EG" "AR_AE" "AR_AA" "AR_JO" "AR_JO.UTF-8" "AR_KW" \ "AR_KW.UTF-8" "AR_LB" "AR_LB.UTF-8" "AR_MA" "AR_MA.UTF-8" "AR_OM" "AR_OM.UTF-8" \ "AR_QA" "AR_QA.UTF-8" "AR_SA" "AR_SA.UTF-8" "AR_SY" "AR_SY.UTF-8" "AR_TN" \ "AR_TN.UTF-8" "AR_YE" "AR_YE.UTF-8" } # CLAUSE: lib.locale.num.get # INFO (S1) (3 lines): # TEXT: exercising std::num_get<char> # CLAUSE: lib.locale.num.get /amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.num.get.mt.cpp:245: \ test_get_data<char,std::char_traits<char> >: Assertion '! (state & std::ios_base::failbit)' failed. IOT/Abort trap (core dumped) $ dbx 22.locale.num.get.mt Type 'help' for help. [using memory image in core] reading symbolic information ... IOT/Abort trap in pthread_kill at 0x90000006ce3a5bc ($t2) 0x90000006ce3a5bc (pthread_kill+0x88) e8410028 ld r2,0x28(r1) (dbx) where pthread_kill(??, ??) at 0x90000006ce3a5bc _p_raise(??) at 0x90000006ce39ff8 raise.raise(??) at 0x90000000005893c abort() at 0x900000000083c0c __rw_assert_fail__4__rwFPCcT1iT1() at 0x10008b45c unnamed block in 22.locale.num.get.mt.void test_get_data<char,std::char_traits<char> >( \ const MyNumData&,\ const std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >&, \ const std::istreambuf_iterator<char,std::char_traits<char> >&,\ const std::istreambuf_iterator<char,std::char_traits<char> >&, \ std::basic_ios<char,std::char_traits<char> >&)\ (data = &(...), np = &(...), iter = &(...), end = &(...), io = &(...)), line 245 in "22.locale.num.get.mt.cpp" 22.locale.num.get.mt.void test_get_data<char,std::char_traits<char> >( \ const MyNumData&, \ const std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >&, \ const std::istreambuf_iterator<char,std::char_traits<char> >&, \ const std::istreambuf_iterator<char,std::char_traits<char> >&, \ std::basic_ios<char,std::char_traits<char> >&) (data = &(...), np = &(...), iter = &(...), end = &(...), io = &(...)), line 245 in "22.locale.num.get.mt.cpp" unnamed block in thread_func(void*)( = 0x0fffffffffffef50), line 349 in "22.locale.num.get.mt.cpp" unnamed block in thread_func(void*)( = 0x0fffffffffffef50), line 349 in "22.locale.num.get.mt.cpp" thread_func(void*)( = 0x0fffffffffffef50), line 349 in "22.locale.num.get.mt.cpp" (dbx) quit
Attachments
Issue Links
- duplicates
-
STDCXX-499 std::num_put inserts NUL thousand separator
- Closed
- relates to
-
STDCXX-886 [HP aCC 6.16] SIGABRT in 22.locale.num.get.mt
- Closed