re PR c++/7804 (bad printing of fp constant in warning message)

PR c++/7804
	* error.c (dump_expr) [REAL_CST]: Output in decimal format.

	* g++.dg/other/warning1.C: New test.

From-SVN: r57843
This commit is contained in:
Kriang Lerdsuwanakij 2002-10-05 12:28:16 +00:00 committed by Kriang Lerdsuwanakij
parent f5b63cb6d7
commit eb55ce4b2f
4 changed files with 29 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/7804
* error.c (dump_expr) [REAL_CST]: Output in decimal format.
2002-10-03 Mark Mitchell <mark@codesourcery.com>
PR c++/7931

View File

@ -1508,13 +1508,7 @@ dump_expr (t, flags)
break;
case REAL_CST:
{
const unsigned char *p = (const unsigned char *) &TREE_REAL_CST (t);
size_t i;
strcpy (digit_buffer, "0x");
for (i = 0; i < sizeof TREE_REAL_CST (t); i++)
sprintf (digit_buffer + 2 + 2*i, "%02x", *p++);
}
REAL_VALUE_TO_DECIMAL (TREE_REAL_CST (t), digit_buffer, -1);
output_add_string (scratch_buffer, digit_buffer);
break;

View File

@ -1,3 +1,8 @@
2002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/7804
* g++.dg/other/warning1.C: New test.
2002-10-04 Roger Sayle <roger@eyesopen.com>
* gcc.c-torture/execute/20020720-1.x: XFAIL instead of skipping

View File

@ -0,0 +1,18 @@
// { dg-do compile }
// PR c++/7804
// Floating point formatting in error and warning messages
extern "C" int printf(const char *, ...);
struct S
{
static const float inf = 1.0f / 0.0f; // { dg-warning "1.0|initialization" }
static const float nan = 0.0f / 0.0f; // { dg-warning "0.0|initialization" }
};
int main()
{
printf("%f\n%f\n", S::inf, S::nan);
return 0;
}