You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Travis Vitek (JIRA)" <ji...@apache.org> on 2008/05/06 02:43:58 UTC

[jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in 22.locale.time.get

    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594415#action_12594415 ] 

Travis Vitek commented on STDCXX-847:
-------------------------------------

One possible workaround would be to write a utility to capture the locale data and write it out to a file in $(BUILDDIR). Then the {{rw_locales()}} and {{rw_query_locales()}} functions could just load up this file and read the data from there.

> [XLC++ 7,8,9] SEGV in 22.locale.time.get
> ----------------------------------------
>
>                 Key: STDCXX-847
>                 URL: https://issues.apache.org/jira/browse/STDCXX-847
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Test Driver
>    Affects Versions: 4.2.1
>         Environment: AIX 5.3 PowerPC IBM XLC++ 9.0
> AIX 5.3 PowerPC IBM XLC++ 8.0
> AIX 5.3 PowerPC IBM XLC++ 7.0
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>             Fix For: 4.2.2
>
>   Original Estimate: 4h
>          Time Spent: 8h
>  Remaining Estimate: 0h
>
> On AIX, when compiled with XLC++, the test [22.locale.time.get.cpp|http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.time.get.cpp?view=markup] fails with a {{SIGSEGV}} in all build types.
> This is the stack dump at the time of the crash.
> {noformat}
> Segmentation fault in __xisdigit at 0xd033cc00
> 0xd033cc00 (__xisdigit+0x14) 80a30000        lwz   r5,0x0(r3)
> (dbx) where
> __xisdigit(0x5b5b0000, 0x58) at 0xd033cc00
> doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
> __strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
> strftime(??, ??, ??, ??) at 0xd0341c48
> unnamed block in void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> void test_english<char>(char,const char*,const char*)( = '\0', cname = "char", locname = warning: Unable to access address 0x2006cbf8 from core
> (invalid char ptr (0x2006cbf8))), line 933 in "22.locale.time.get.cpp"
> run_test(int,char**)( = 1,  = 0x2ff22a3c), line 1611 in "22.locale.time.get.cpp"
> rw_vtest(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,char*)(argc = 1, argv = 0x2ff22a3c, file_name = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), fun = 0x2005ec08, optstr = "", va = ""), line 1040 in "driver.cpp"
> rw_test(int,char**,const char*,const char*,const char*,int(*)(int,char**),const char*,...)(argc = 1, argv = 0x2ff22a3c, fname = "/amd/devco/vitek/stdcxx/trunk/tests/localization/22.locale.time.get.cpp", clause = "lib.locale.time.get", comment = (nil), testfun = 0x2005ec08, optstr = "", ... = 0x0), line 1138 in "driver.cpp"
> main(argc = 1, argv = 0x2ff22a3c), line 1668 in "22.locale.time.get.cpp"
> (dbx) list 920,940
>   920       TEST (T (0, 0, 0, 1, 0, 100), "%x", 8, "x", 0, Eof);
>   921   
>   922       // exercise time (time_get::get_time())
>   923       FUNCTION ("get_time");
>   924   
>   925       int len;
>   926   
>   927       {
>   928           // determine whether "%X" is equivalent to "%I:%M:%S %p"
>   929           // (e.g., HP-UX or Linux) or to "%I:%M:%S" (e.g., Compaq
>   930           // Tru64 UNIX)
>   931           char buf [128];
>   932           const std::tm tmb = mktm (0, 0, 1);
>   933           len = std::strftime (buf, sizeof buf, "%X", &tmb);
>   934       }
>   935   
>   936       const int hour = 11 == len ? 12 : 0;
>   937   
>   938       TEST (T ( 0, 0,  0), "%X", len, "X", 0, 11 == len ? Good : Eof);
>   939       TEST (T ( 0, 0,  1), "%X", len, "X", 0, 11 == len ? Good : Eof);
>   940       TEST (T ( 0, 0, 11), "%X", len, "X", 0, 11 == len ? Good : Eof);
> (dbx) quit
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.