OSDN Git Service

* io/read.c (set_integer): Use memcpy to fill buffer.
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Aug 2005 17:05:52 +0000 (17:05 +0000)
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Aug 2005 17:05:52 +0000 (17:05 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103687 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/io/read.c

index 44a9fcf..5883d29 100644 (file)
@@ -1,5 +1,9 @@
 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
        * io/read.c (convert_real): Use memcpy to fill buffer.
 
index e37224d..64231b9 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");