diff options
Diffstat (limited to 'gcc/fortran/intrinsic.c')
-rw-r--r-- | gcc/fortran/intrinsic.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index d0f7c10..c35ea73 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -2786,12 +2786,16 @@ add_functions (void) gfc_check_real, gfc_simplify_real, gfc_resolve_real, a, BT_UNKNOWN, dr, REQUIRED, kind, BT_INTEGER, di, OPTIONAL); + make_generic ("real", GFC_ISYM_REAL, GFC_STD_F77); + /* This provides compatibility with g77. */ - add_sym_1 ("realpart", GFC_ISYM_REAL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_GNU, + add_sym_1 ("realpart", GFC_ISYM_REALPART, CLASS_ELEMENTAL, ACTUAL_NO, 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", GFC_ISYM_REAL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F77, + make_generic ("realpart", GFC_ISYM_REALPART, GFC_STD_F77); + + add_sym_1 ("float", GFC_ISYM_FLOAT, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F77, gfc_check_float, gfc_simplify_float, NULL, a, BT_INTEGER, di, REQUIRED); @@ -2802,15 +2806,19 @@ add_functions (void) make_alias ("floatk", GFC_STD_GNU); } - add_sym_1 ("dfloat", GFC_ISYM_REAL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dd, GFC_STD_GNU, + make_generic ("float", GFC_ISYM_FLOAT, GFC_STD_F77); + + add_sym_1 ("dfloat", GFC_ISYM_DFLOAT, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dd, GFC_STD_GNU, gfc_check_float, gfc_simplify_dble, gfc_resolve_dble, a, BT_REAL, dr, REQUIRED); - add_sym_1 ("sngl", GFC_ISYM_REAL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F77, + make_generic ("dfloat", GFC_ISYM_DFLOAT, GFC_STD_F77); + + add_sym_1 ("sngl", GFC_ISYM_SNGL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F77, gfc_check_sngl, gfc_simplify_sngl, NULL, a, BT_REAL, dd, REQUIRED); - make_generic ("real", GFC_ISYM_REAL, GFC_STD_F77); + make_generic ("sngl", GFC_ISYM_SNGL, GFC_STD_F77); add_sym_2 ("rename", GFC_ISYM_RENAME, CLASS_IMPURE, ACTUAL_NO, BT_INTEGER, di, GFC_STD_GNU, gfc_check_rename, NULL, gfc_resolve_rename, @@ -4833,7 +4841,8 @@ gfc_intrinsic_func_interface (gfc_expr *expr, int error_flag) } if ((isym->id == GFC_ISYM_REAL || isym->id == GFC_ISYM_DBLE - || isym->id == GFC_ISYM_CMPLX) + || isym->id == GFC_ISYM_CMPLX || isym->id == GFC_ISYM_FLOAT + || isym->id == GFC_ISYM_SNGL || isym->id == GFC_ISYM_DFLOAT) && gfc_init_expr_flag && !gfc_notify_std (GFC_STD_F2003, "Function %qs as initialization " "expression at %L", name, &expr->where)) |