diff options
author | Steven G. Kargl <kargls@comcast.net> | 2005-09-22 19:00:24 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2005-09-22 19:00:24 +0000 |
commit | 6970fcc83eae5053ffc876d8f8fb75f9ccb4159c (patch) | |
tree | 0e209b98ef1ee23b4f92afccfcca714e10b4f7c5 /gcc/fortran/intrinsic.c | |
parent | e9931b5b67e02b934eb8d69c1728b831bde7d0a6 (diff) | |
download | gcc-6970fcc83eae5053ffc876d8f8fb75f9ccb4159c.zip gcc-6970fcc83eae5053ffc876d8f8fb75f9ccb4159c.tar.gz gcc-6970fcc83eae5053ffc876d8f8fb75f9ccb4159c.tar.bz2 |
re PR fortran/23516 (IMAG is not a generic function when implicit none is declared)
PR fortran/23516
* intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART
intrinsics.
* intrinsic.h: Prototypes for gfc_simplify_realpart and
gfc_resolve_realpart.
* intrinsic.texi: Document intrinsic procedures.
* simplify.c (gfc_simplify_realpart): New function.
* irseolve.c (gfc_resolve_realpart): New function.
From-SVN: r104537
Diffstat (limited to 'gcc/fortran/intrinsic.c')
-rw-r--r-- | gcc/fortran/intrinsic.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index 180e7ae..be23556 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -949,10 +949,14 @@ add_functions (void) gfc_check_fn_c, gfc_simplify_aimag, gfc_resolve_aimag, z, BT_COMPLEX, dz, REQUIRED); + make_alias ("imag", GFC_STD_GNU); + make_alias ("imagpart", GFC_STD_GNU); + add_sym_1 ("dimag", 1, 1, BT_REAL, dd, GFC_STD_GNU, NULL, gfc_simplify_aimag, gfc_resolve_aimag, z, BT_COMPLEX, dd, REQUIRED); + make_generic ("aimag", GFC_ISYM_AIMAG, GFC_STD_F77); add_sym_2 ("aint", 1, 1, BT_REAL, dr, GFC_STD_F77, @@ -1813,6 +1817,11 @@ add_functions (void) gfc_check_real, gfc_simplify_real, gfc_resolve_real, a, BT_UNKNOWN, dr, REQUIRED, kind, BT_INTEGER, di, OPTIONAL); + /* This provides compatibility with g77. */ + add_sym_1 ("realpart", 1, 0, BT_REAL, dr, GFC_STD_GNU, + gfc_check_fn_c, gfc_simplify_realpart, gfc_resolve_realpart, + a, BT_UNKNOWN, dr, REQUIRED); + add_sym_1 ("float", 1, 0, BT_REAL, dr, GFC_STD_F77, NULL, gfc_simplify_float, NULL, a, BT_INTEGER, di, REQUIRED); |