Commit e7f78021 by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/48928 (ICE: in decimal_to_decnumber, at dfp.c:113 with -O -g and decimal float)

	PR debug/48928
	* dfp.c (decimal_to_decnumber): Handle conversion from
	dconst{1,2,m1,half}.

	* gcc.dg/dfp/pr48928.c: New test.

From-SVN: r173606
parent 321f4ead
2011-05-10 Jakub Jelinek <jakub@redhat.com>
PR debug/48928
* dfp.c (decimal_to_decnumber): Handle conversion from
dconst{1,2,m1,half}.
2011-05-09 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
......
/* Decimal floating point support.
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software
Foundation, Inc.
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -110,7 +110,33 @@ decimal_to_decnumber (const REAL_VALUE_TYPE *r, decNumber *dn)
decNumberFromString (dn, "nan", &set);
break;
case rvc_normal:
gcc_assert (r->decimal);
if (!r->decimal)
{
/* dconst{1,2,m1,half} are used in various places in
the middle-end and optimizers, allow them here
as an exception by converting them to decimal. */
if (memcmp (r, &dconst1, sizeof (*r)) == 0)
{
decNumberFromString (dn, "1", &set);
break;
}
if (memcmp (r, &dconst2, sizeof (*r)) == 0)
{
decNumberFromString (dn, "2", &set);
break;
}
if (memcmp (r, &dconstm1, sizeof (*r)) == 0)
{
decNumberFromString (dn, "-1", &set);
break;
}
if (memcmp (r, &dconsthalf, sizeof (*r)) == 0)
{
decNumberFromString (dn, "0.5", &set);
break;
}
gcc_unreachable ();
}
decimal128ToNumber ((const decimal128 *) r->sig, dn);
break;
default:
......
2011-05-10 Jakub Jelinek <jakub@redhat.com>
PR debug/48928
* gcc.dg/dfp/pr48928.c: New test.
2011-05-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/48522
......
/* PR debug/48928 */
/* { dg-do compile } */
/* { dg-options "-g -O2" } */
_Decimal32
foo (_Decimal32 x)
{
_Decimal32 y = (x + x) / (9.DF * x);
return y;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment