From 6d360fd8f2abfb37c7f2bc926678073948160ffd Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 22 Apr 2006 09:08:58 +0200 Subject: re PR fortran/26769 (Implement transpose() and reshape() for real instead of using integer) PR fortran/26769 * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16). (gfc_resolve_transpose): Use transpose_r16 for real(16). * Makefile.am (i_transpose_c): Add generated/transpose_r16.c. (i_reshape_c): Add generated/reshape_r16.c. * Makefile.in: Regenerated. * generated/transpose_r16.c: Generated new file. * generated/redhape_r16.c: Generated new file. From-SVN: r113169 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/iresolve.c | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'gcc') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 003f931..d10a53e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2006-04-22 Jakub Jelinek + + PR fortran/26769 + * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16). + (gfc_resolve_transpose): Use transpose_r16 for real(16). + 2006-04-21 Paul Thomas PR fortran/27122 diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index d07864e..ecb1448 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -1,6 +1,6 @@ /* Intrinsic function resolution. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, - Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. Contributed by Andy Vaught & Katherine Holcomb This file is part of GCC. @@ -1520,7 +1520,7 @@ gfc_resolve_reshape (gfc_expr * f, gfc_expr * source, gfc_expr * shape, f->value.function.name = gfc_get_string (PREFIX("reshape_%c%d"), gfc_type_letter (BT_COMPLEX), source->ts.kind); - else if (source->ts.type == BT_REAL && kind == 10) + else if (source->ts.type == BT_REAL && (kind == 10 || kind == 16)) f->value.function.name = gfc_get_string (PREFIX("reshape_%c%d"), gfc_type_letter (BT_REAL), source->ts.kind); @@ -1994,9 +1994,10 @@ gfc_resolve_transpose (gfc_expr * f, gfc_expr * matrix) break; case BT_REAL: - /* There is no kind=10 integer type. We need to + /* There is no kind=10 integer type and on 32-bit targets + there is usually no kind=16 integer type. We need to call the real version. */ - if (kind == 10) + if (kind == 10 || kind == 16) { f->value.function.name = gfc_get_string (PREFIX("transpose_r%d"), kind); -- cgit v1.1