stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-847) [XLC++ 7,8,9] SEGV in 22.locale.time.get
Date Tue, 06 May 2008 18:56:55 GMT

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

Martin Sebor commented on STDCXX-847:
-------------------------------------

That's one option. Another would be to store the data in svn and have the driver search the
stored data first and then check the results against the actual data obtained from the system.
This might mean a few trips back and forth on machines with some locales missing but in most
cases it would avoid the overhead of going to the OS at all. But your solution is probably
more reliable and might be less elaborate to implement.

> [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.


Mime
View raw message