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/04/09 21:23:24 UTC

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

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


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek reassigned STDCXX-847:
-----------------------------------

    Assignee: Travis Vitek

> [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.1
>
>         Attachments: test-stdcxx-847.cpp
>
>   Original Estimate: 4h
>          Time Spent: 1h
>  Remaining Estimate: 4h
>
> 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.


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

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589607#action_12589607 ] 

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

It sure does look like an AIX bug. The usual process is to:

# file a bug report with the OS vendor (either via your [PartnerWorld|https://www-304.ibm.com/usrsrvc/account/userservices/jsp/login.jsp?persistPage=true] account or through [PSERV|https://techsupport.services.ibm.com/server/pserv])
# create an External issue in Jira with the test case for the bug
# track the vendor's bug status in the External issue

> [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.1
>
>   Original Estimate: 4h
>          Time Spent: 6h
>  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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-847:
--------------------------------

    Attachment: test-stdcxx-847.cpp

Attaching simplified testcase. It appears that this change is related to the rw_locale_query() call, as the failure is eliminated if the locale name is hardcoded.

> [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
>
>         Attachments: test-stdcxx-847.cpp
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> 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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-847:
--------------------------------

    Fix Version/s:     (was: 4.2.1)
                   4.2.2

Deferred to 4.2.2

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


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-847:
--------------------------------

    Attachment:     (was: test-stdcxx-847.cpp)

> [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.1
>
>   Original Estimate: 4h
>          Time Spent: 1h
>  Remaining Estimate: 4h
>
> 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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12591778#action_12591778 ] 

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

I'm still working with IBM on this one.

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


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

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
    [ 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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589383#action_12589383 ] 

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

Okay, here is a reduced testcase and the output.

{noformat}
$ cat t.cpp && xlC -g t.cpp -o ./t && ./t
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int main (int, char**)
{
    FILE* pipe = popen ("locale -a", "r");
    if (!pipe)
        return 1;

    char buf [128];
    while (fgets (buf, sizeof (buf), pipe)) {

        const size_t len = strlen (buf);
        buf [len ? len - 1 : 0] = '\0';

        setlocale (LC_CTYPE, buf);
    }

    pclose (pipe);

    if (!setlocale (LC_ALL, "EN_US"))
        return 2;

    const time_t t = time (0);
    const tm *ptm = localtime (&t);

    strftime (buf, sizeof buf, "%Y", ptm);

    return 0;
}
Segmentation fault (core dumped)

$ dbx ./t
Type 'help' for help.
warning: The core file is not a fullcore. Some info may
not be available.
[using memory image in core]
reading symbolic information ...

Segmentation fault in __xisdigit at 0xd033cc08
0xd033cc08 (__xisdigit+0x1c) 80650134        lwz   r3,0x134(r5)
(dbx) where
__xisdigit(0x28165874, 0x59) at 0xd033cc08
doformat(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338660
__strftime_std(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0338464
strftime(??, ??, ??, ??) at 0xd0341c48
main( = 1,  = 0x2ff22ac4), line 29 in "t.cpp"
(dbx) quit
{noformat}

So this looks to be a libc bug. Not sure what to do about it yet, but I'm pretty sure we can postpone finishing this until after 4.2.1.

> [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.1
>
>   Original Estimate: 4h
>          Time Spent: 1h
>  Remaining Estimate: 4h
>
> 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.


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

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589633#action_12589633 ] 

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

Sorry, I misunderstood.

I'd try to narrow down the test case a bit more to see if there's a specific locale or sequence of locales that triggers the segfault. If so, then you might be able to avoid that locale or sequence.

> [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.1
>
>   Original Estimate: 4h
>          Time Spent: 6h
>  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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590623#action_12590623 ] 

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

I've spent some time trying to reduce this further and I've come up with nothing. I think the best thing to do right now is to just mark the failure as expected and revisit this when we get an update from IBM.

> [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.1
>
>   Original Estimate: 4h
>          Time Spent: 6h
>  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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ 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.


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

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589608#action_12589608 ] 

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

Yeah, I know about that. I'm actually in the middle of doing that already. I was just saying I don't know what to do about it in the test or {{rw_locale_query()}} to avoid the crash.

> [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.1
>
>   Original Estimate: 4h
>          Time Spent: 6h
>  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.