summaryrefslogtreecommitdiff
path: root/libgfortran/io/read.c
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2005-08-31 17:05:52 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2005-08-31 17:05:52 +0000
commitaf452a2bf90f17916d0f9b12702535cb455f52fd (patch)
tree1ccc44de7bff216225ccb4d02ff1d04e6c0ba4e4 /libgfortran/io/read.c
parente6494c94344b9dd70185a6ace9779d88e4fdf322 (diff)
downloadgcc-af452a2bf90f17916d0f9b12702535cb455f52fd.tar.gz
* io/read.c (set_integer): Use memcpy to fill buffer.
From-SVN: r103687
Diffstat (limited to 'libgfortran/io/read.c')
-rw-r--r--libgfortran/io/read.c25
1 files changed, 20 insertions, 5 deletions
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");