summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2022-01-04 15:55:27 +0100
committerJakub Jelinek <jakub@redhat.com>2022-01-04 15:55:27 +0100
commit2319a9204f1c0b4a17753b9b66b086a5da38ede0 (patch)
tree4fff1a440c979040e29ddd90271514eec337e2f2
parent7e23d6ef2955416c1076f384151a5d6a4fc4c57e (diff)
fortran, libgfortran: Assorted -mabi=ieeelongdouble I/O fixes
Another patch, this fixes: FAIL: gfortran.dg/intrinsic_spread_2.f90 -O0 execution test FAIL: gfortran.dg/intrinsic_spread_2.f90 -O1 execution test FAIL: gfortran.dg/intrinsic_spread_2.f90 -O2 execution test FAIL: gfortran.dg/intrinsic_spread_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/intrinsic_spread_2.f90 -O3 -g execution test FAIL: gfortran.dg/intrinsic_spread_2.f90 -Os execution test FAIL: gfortran.dg/intrinsic_unpack_2.f90 -O0 execution test FAIL: gfortran.dg/intrinsic_unpack_2.f90 -O1 execution test FAIL: gfortran.dg/intrinsic_unpack_2.f90 -O2 execution test FAIL: gfortran.dg/intrinsic_unpack_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/intrinsic_unpack_2.f90 -O3 -g execution test FAIL: gfortran.dg/intrinsic_unpack_2.f90 -Os execution test FAIL: gfortran.dg/large_real_kind_form_io_1.f90 -O0 execution test FAIL: gfortran.dg/large_real_kind_form_io_1.f90 -O1 execution test FAIL: gfortran.dg/large_real_kind_form_io_1.f90 -O2 execution test FAIL: gfortran.dg/large_real_kind_form_io_1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/large_real_kind_form_io_1.f90 -O3 -g execution test FAIL: gfortran.dg/large_real_kind_form_io_1.f90 -Os execution test FAIL: gfortran.dg/quad_2.f90 -O0 execution test FAIL: gfortran.dg/quad_2.f90 -O1 execution test FAIL: gfortran.dg/quad_2.f90 -O2 execution test FAIL: gfortran.dg/quad_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/quad_2.f90 -O3 -g execution test FAIL: gfortran.dg/quad_2.f90 -Os execution test 2022-01-04 Jakub Jelinek <jakub@redhat.com> gcc/fortran/ * trans-io.c (transfer_array_desc): Pass abi kind instead of kind to libgfortran. libgfortran/ * io/read.c (convert_real): Add missing break; for the HAVE_GFC_REAL_17 case.
-rw-r--r--gcc/fortran/trans-io.c2
-rw-r--r--libgfortran/io/read.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index e71075cb3fa..e122831c6f7 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -2528,7 +2528,7 @@ transfer_array_desc (gfc_se * se, gfc_typespec * ts, tree addr_expr)
else
charlen_arg = build_int_cst (gfc_charlen_type_node, 0);
- kind_arg = build_int_cst (integer_type_node, ts->kind);
+ kind_arg = build_int_cst (integer_type_node, gfc_type_abi_kind (ts));
tmp = gfc_build_addr_expr (NULL_TREE, dt_parm);
if (last_dt == READ)
diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c
index abc8cbe72d7..74c051422d2 100644
--- a/libgfortran/io/read.c
+++ b/libgfortran/io/read.c
@@ -203,6 +203,7 @@ convert_real (st_parameter_dt *dtp, void *dest, const char *buffer, int length)
# else
*((GFC_REAL_17*) dest) = __qmath_(strtoflt128) (buffer, &endptr);
# endif
+ break;
#endif
default: