
| Key: |
STDCXX-847
|
| Type: |
Bug
|
| Status: |
Open
|
| Priority: |
Major
|
| Assignee: |
Unassigned
|
| Reporter: |
Travis Vitek
|
| Votes: |
0
|
| Watchers: |
0
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
Time Tracking:
|
|
Original Estimate:
|
4h
|
|
|
Remaining Estimate:
|
0h
|
|
|
Time Spent:
|
8h
|
|
|
|
|
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
AIX 5.3 PowerPC IBM XLC++ 9.0
AIX 5.3 PowerPC IBM XLC++ 8.0
AIX 5.3 PowerPC IBM XLC++ 7.0
|
|
Issue Links:
|
Dependants
|
|
This issue depends on:
|
|
|
STDCXX-877 [AIX] SIGABRT when using strftime() after enumerating locales
|
|
|
|
|
|
|
|
| Regression: |
Regression
|
| Severity: |
Incorrect Behavior
|
On AIX, when compiled with XLC++, the test 22.locale.time.get.cpp fails with a SIGSEGV in all build types.
This is the stack dump at the time of the crash.
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
|
|
Description
|
On AIX, when compiled with XLC++, the test 22.locale.time.get.cpp fails with a SIGSEGV in all build types.
This is the stack dump at the time of the crash.
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
|
Show » |
made changes - 09/Apr/08 07:25 PM
| Field |
Original Value |
New Value |
|
Attachment
|
|
test-stdcxx-847.cpp
[ 12379759
]
|
made changes - 09/Apr/08 07:26 PM
made changes - 15/Apr/08 05:00 PM
|
Assignee
|
|
Travis Vitek
[ vitek
]
|
made changes - 15/Apr/08 06:24 PM
|
Status
|
Open
[ 1
]
|
In Progress
[ 3
]
|
made changes - 16/Apr/08 01:24 AM
|
Attachment
|
test-stdcxx-847.cpp
[ 12379759
]
|
|
made changes - 16/Apr/08 01:28 AM
|
Status
|
In Progress
[ 3
]
|
Open
[ 1
]
|
made changes - 16/Apr/08 01:28 AM
|
Time Spent
|
1h
[ 3600
]
|
6h
[ 21600
]
|
|
Remaining Estimate
|
4h
[ 14400
]
|
0h
[ 0
]
|
made changes - 18/Apr/08 09:56 PM
|
Time Spent
|
6h
[ 21600
]
|
8h
[ 28800
]
|
made changes - 23/Apr/08 08:34 PM
|
Fix Version/s
|
4.2.1
[ 12312690
]
|
|
|
Fix Version/s
|
|
4.2.2
[ 12313096
]
|
made changes - 11/Jul/09 12:00 AM
|
Assignee
|
Travis Vitek
[ vitek
]
|
|
|