diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-04-22 09:08:58 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-04-22 09:08:58 +0200 |
commit | 6d360fd8f2abfb37c7f2bc926678073948160ffd (patch) | |
tree | 0d49ef3f971a039272960726776b051d4dc0d1ee /gcc/fortran/iresolve.c | |
parent | 7a0b46c94487106de5d4ee7f865fea92302f8d1c (diff) | |
download | gcc-6d360fd8f2abfb37c7f2bc926678073948160ffd.zip gcc-6d360fd8f2abfb37c7f2bc926678073948160ffd.tar.gz gcc-6d360fd8f2abfb37c7f2bc926678073948160ffd.tar.bz2 |
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
Diffstat (limited to 'gcc/fortran/iresolve.c')
-rw-r--r-- | gcc/fortran/iresolve.c | 11 |
1 files changed, 6 insertions, 5 deletions
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); |