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

[HP-UX 11.23] std::num_put drops sign from negative long double NaN

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Won't Fix
    • 4.1.3, 4.2.0
    • 4.2.1
    • 22. Localization
    • None
    • HP-UX 11.23 and prior

    • Incorrect Behavior

    Description

      On HP-UX 11.23 and prior versions of the OS negative long double NaN is formatted without the minus sign:

      $ uname -sr && cat t.cpp && nice gmake t && ./t
      HP-UX B.11.23
      #include <cassert>
      #include <iostream>
      #include <limits>
      #include <sstream>
      
      int main ()
      {
          std::ostringstream os;
          os << std::numeric_limits<double>::quiet_NaN () << " == "
             << std::numeric_limits<long double>::quiet_NaN () << '\n'
             << -std::numeric_limits<double>::quiet_NaN () << " == "
             << -std::numeric_limits<long double>::quiet_NaN ();
      
          std::cout << os.str () << '\n';
          assert (os.str () == "nan == nan\n-nan == -nan");
      }
      
      aCC -c -I/amd/devco/sebor/stdcxx/include/ansi -I/usr/include  -D_RWSTDDEBUG    -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-aCC-3.73-11s/include -I/amd/devco/sebor/stdcxx/examples/include  -Aa +nostl  -g +d  +w +W392 +W655 +W684 +W818 +W819 +W849   t.cpp
      aCC t.o -o t -Aa +nostl -Wl,+s -Wl,+vnocompatwarnings    -L/build/sebor/stdcxx-aCC-3.73-11s/lib  -lstd11s  -lm 
      nan == nan
      -nan == nan
      Assertion failed: os.str () == "nan == nan\n-nan == -nan", file t.cpp, line 15
      ABORT instruction (core dumped)
      

      Attachments

        Issue Links

          Activity

            People

              sebor Martin Sebor
              sebor Martin Sebor
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 4h
                  4h
                  Remaining:
                  Time Spent - 1h Remaining Estimate - 3h
                  3h
                  Logged:
                  Time Spent - 1h Remaining Estimate - 3h
                  1h