aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2018-02-12 19:53:17 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2018-02-12 19:53:17 +0000
commite9bfdf18cb4f6fd6d323bc1a9008d2e717670ff7 (patch)
tree02ed85c48bc8966ec79c5aace72da2283178c8e6 /libgfortran/intrinsics
parent52eb4ab4092228369cea5d7ca2717d32cc666c5c (diff)
downloadgcc-e9bfdf18cb4f6fd6d323bc1a9008d2e717670ff7.zip
gcc-e9bfdf18cb4f6fd6d323bc1a9008d2e717670ff7.tar.gz
gcc-e9bfdf18cb4f6fd6d323bc1a9008d2e717670ff7.tar.bz2
libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension of descriptor to use vaiable members for dim.
2018-02-12 Thomas Koenig <tkoenig@gcc.gnu.org> * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension of descriptor to use vaiable members for dim. Change usage of GFC_ARRAY_DESCRIPTOR accordingly. (GFC_FILL_ARRAY_DESCRIPTOR): New macro. (gfc_full_array_i4): New type. * intrinsics/date_and_time.c (secnds): Use sizeof (gfc_array_i4) + sizeof (descriptor_dimension) for memory allocation. * intrinsics/reshape_generic.c: Use GFC_FULL_ARRAY_DESCRIPTOR. * io/format.c: Use sizeof (gfc_array_i4) + sizeof (descriptor_dimension) for memoy allocation. * io/list_read.c (list_formatted_read_scalar): Use gfc_full_array_i4 for variable. (nml_read_obj): Likewise. * io/write.c (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise. * m4/reshape.m4: Use GFC_FULL_ARRAY_DESCRIPTOR. * generated/reshape_c10.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. From-SVN: r257601
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r--libgfortran/intrinsics/date_and_time.c6
-rw-r--r--libgfortran/intrinsics/reshape_generic.c4
2 files changed, 6 insertions, 4 deletions
diff --git a/libgfortran/intrinsics/date_and_time.c b/libgfortran/intrinsics/date_and_time.c
index a493b44..78a7cd0 100644
--- a/libgfortran/intrinsics/date_and_time.c
+++ b/libgfortran/intrinsics/date_and_time.c
@@ -267,8 +267,10 @@ secnds (GFC_REAL_4 *x)
GFC_INTEGER_4 values[VALUES_SIZE];
GFC_REAL_4 temp1, temp2;
- /* Make the INTEGER*4 array for passing to date_and_time. */
- gfc_array_i4 *avalues = xmalloc (sizeof (gfc_array_i4));
+ /* Make the INTEGER*4 array for passing to date_and_time, with enough space
+ for a rank-one array. */
+ gfc_array_i4 *avalues = xmalloc (sizeof (gfc_array_i4)
+ + sizeof (descriptor_dimension));
avalues->base_addr = &values[0];
GFC_DESCRIPTOR_DTYPE (avalues).type = BT_REAL;
GFC_DESCRIPTOR_DTYPE (avalues).elem_len = 4;
diff --git a/libgfortran/intrinsics/reshape_generic.c b/libgfortran/intrinsics/reshape_generic.c
index 94e45f5..276c69c 100644
--- a/libgfortran/intrinsics/reshape_generic.c
+++ b/libgfortran/intrinsics/reshape_generic.c
@@ -26,8 +26,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
#include <string.h>
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
-typedef GFC_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) parray;
+typedef GFC_FULL_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef GFC_FULL_ARRAY_DESCRIPTOR(GFC_MAX_DIMENSIONS, char) parray;
static void
reshape_internal (parray *ret, parray *source, shape_type *shape,