Issue Details (XML | Word | Printable)

Key: STDCXX-463
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[HP-UX 11.23] printf("%Lg", -NAN) formatted incorrectly

Created: 29/Jun/07 01:40 AM   Updated: 25/Mar/08 05:24 PM
Return to search
Component/s: External
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

Environment: HP-UX 11.23 and prior
Issue Links:
dependent
 


 Description  « Hide
-------- Original Message --------
Subject: HP-UX 11.23 printf("%Lg", -NAN) formatted incorrectly
Date: Thu, 28 Jun 2007 19:34:32 -0600
From: Martin Sebor <sebor@roguewave.com>
Organization: Rogue Wave Software
To: acxx@cup.hp.com

Hi,

On 11.23/PA, printf("%g") formats negative NaN correctly (by
prepending the minus) but with "%Lg" it forgets the sign. On
11.31/IPF printf() works correctly. Are there plans to backport
the fix to prior versions of HP-UX and/or PA?

Thanks
Martin

$ cat t.cpp && aCC -AA t.cpp && ./a.out
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <limits>

int main ()
{
char nan [32];
char nnan [32];
char lnan [32];
char nlnan [32];

sprintf (nan, "%g", std::numeric_limits<double>::quiet_NaN ());
sprintf (nnan, "%g", -std::numeric_limits<double>::quiet_NaN ());

sprintf (lnan, "%Lg", std::numeric_limits<long double>::quiet_NaN ());
sprintf (nlnan, "%Lg", -std::numeric_limits<long double>::quiet_NaN ());

printf ("%s, %s\n%s, %s\n", nan, nnan, lnan, nlnan);
assert (0 == strcmp (nan, lnan));
assert (0 == strcmp (nnan, nlnan));
}
nan, -nan
nan, nan
Assertion failed: 0 == strcmp (nnan, nlnan), file t.cpp, line 21
ABORT instruction (core dumped)



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.