re PR target/23556 (FAIL: gfortran.dg/pr18122.f90)

PR target/23556
	* io/read.c (convert_real): Use memcpy to fill buffer.

From-SVN: r103685
This commit is contained in:
Steve Ellcey 2005-08-31 16:58:28 +00:00 committed by Steve Ellcey
parent 35210087ce
commit 2efa12b340
2 changed files with 23 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2005-08-31 Steve Ellcey <sje@cup.hp.com>
PR target/23556
* io/read.c (convert_real): Use memcpy to fill buffer.
2005-08-29 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/23598

View File

@ -124,24 +124,36 @@ convert_real (void *dest, const char *buffer, int length)
switch (length)
{
case 4:
*((GFC_REAL_4 *) dest) =
{
GFC_REAL_4 tmp =
#if defined(HAVE_STRTOF)
strtof (buffer, NULL);
strtof (buffer, NULL);
#else
(GFC_REAL_4) strtod (buffer, NULL);
(GFC_REAL_4) strtod (buffer, NULL);
#endif
memcpy (dest, (void *) &tmp, length);
}
break;
case 8:
*((GFC_REAL_8 *) dest) = strtod (buffer, NULL);
{
GFC_REAL_8 tmp = strtod (buffer, NULL);
memcpy (dest, (void *) &tmp, length);
}
break;
#if defined(HAVE_GFC_REAL_10) && defined (HAVE_STRTOLD)
case 10:
*((GFC_REAL_10 *) dest) = strtold (buffer, NULL);
{
GFC_REAL_10 tmp = strtold (buffer, NULL);
memcpy (dest, (void *) &tmp, length);
}
break;
#endif
#if defined(HAVE_GFC_REAL_16) && defined (HAVE_STRTOLD)
case 16:
*((GFC_REAL_16 *) dest) = strtold (buffer, NULL);
{
GFC_REAL_16 tmp = strtold (buffer, NULL);
memcpy (dest, (void *) &tmp, length);
}
break;
#endif
default: