From af452a2bf90f17916d0f9b12702535cb455f52fd Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Wed, 31 Aug 2005 17:05:52 +0000 Subject: [PATCH] * io/read.c (set_integer): Use memcpy to fill buffer. From-SVN: r103687 --- libgfortran/ChangeLog | 4 ++++ libgfortran/io/read.c | 25 ++++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 44a9fcf63b6..5883d29042c 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,7 @@ +2005-08-31 Steve Ellcey + + * io/read.c (set_integer): Use memcpy to fill buffer. + 2005-08-31 Steve Ellcey PR target/23556 diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c index e37224d5f8f..64231b936c2 100644 --- a/libgfortran/io/read.c +++ b/libgfortran/io/read.c @@ -49,20 +49,35 @@ set_integer (void *dest, GFC_INTEGER_LARGEST value, int length) { #ifdef HAVE_GFC_INTEGER_16 case 16: - *((GFC_INTEGER_16 *) dest) = value; + { + GFC_INTEGER_16 tmp = value; + memcpy (dest, (void *) &tmp, length); + } break; #endif case 8: - *((GFC_INTEGER_8 *) dest) = value; + { + GFC_INTEGER_8 tmp = value; + memcpy (dest, (void *) &tmp, length); + } break; case 4: - *((GFC_INTEGER_4 *) dest) = value; + { + GFC_INTEGER_4 tmp = value; + memcpy (dest, (void *) &tmp, length); + } break; case 2: - *((GFC_INTEGER_2 *) dest) = value; + { + GFC_INTEGER_2 tmp = value; + memcpy (dest, (void *) &tmp, length); + } break; case 1: - *((GFC_INTEGER_1 *) dest) = value; + { + GFC_INTEGER_1 tmp = value; + memcpy (dest, (void *) &tmp, length); + } break; default: internal_error ("Bad integer kind");