[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
Fix For: 4.2.1
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.