* io/read.c (set_integer): Use memcpy to fill buffer.
authorSteve Ellcey <sje@cup.hp.com>
Wed, 31 Aug 2005 17:05:52 +0000 (17:05 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Wed, 31 Aug 2005 17:05:52 +0000 (17:05 +0000)
From-SVN: r103687

libgfortran/ChangeLog
libgfortran/io/read.c

index 44a9fcf63b6491393ecb9efa7f5ab8860c3b74ae..5883d29042c3d92da63107f88c72d1dfe7a97539 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-31  Steve Ellcey  <sje@cup.hp.com>
+
+       * io/read.c (set_integer): Use memcpy to fill buffer.
+
 2005-08-31  Steve Ellcey  <sje@cup.hp.com>
 
        PR target/23556
index e37224d5f8fabd8bb9cefc7a1bd59453fe313e67..64231b936c26c80a9aea1c0baadd52d48093b597 100644 (file)
@@ -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");