Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-847

[XLC++ 7,8,9] SEGV in 22.locale.time.get

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 4.2.1
    • 4.2.2
    • Test Driver
    • None
    • AIX 5.3 PowerPC IBM XLC++ 9.0
      AIX 5.3 PowerPC IBM XLC++ 8.0
      AIX 5.3 PowerPC IBM XLC++ 7.0

    • Regression
    • Incorrect Behavior

    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
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              vitek Travis Vitek
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 4h Original Estimate - 4h
                  4h
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 8h
                  8h