From c60d77d4db7aec48e2fb0997400c4d1177b726aa Mon Sep 17 00:00:00 2001 From: "Steven G. Kargl" Date: Sat, 19 Feb 2005 20:07:47 +0000 Subject: check.c (gfc_check_int): improve checking of optional kind * check.c (gfc_check_int): improve checking of optional kind * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER * gfortran.dg/int_1.f90: New test. From-SVN: r95290 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/check.c | 12 ++++++++++-- gcc/fortran/simplify.c | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 54c37ab..f4a3640 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2005-02-19 Steven G. Kargl + * check.c (gfc_check_int): improve checking of optional kind + * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER + +2005-02-19 Steven G. Kargl + * check.c (gfc_check_achar): New function * intrinsic.h: Prototype it. * intrinsic.c (add_function): Use it. diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 0a26f29..281db88 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -946,10 +946,18 @@ gfc_check_index (gfc_expr * string, gfc_expr * substring, gfc_expr * back) try gfc_check_int (gfc_expr * x, gfc_expr * kind) { - if (numeric_check (x, 0) == FAILURE - || kind_check (kind, 1, BT_INTEGER) == FAILURE) + if (numeric_check (x, 0) == FAILURE) + return FAILURE; + + if (kind != NULL) + { + if (type_check (kind, 1, BT_INTEGER) == FAILURE) return FAILURE; + if (scalar_check (kind, 1) == FAILURE) + return FAILURE; + } + return SUCCESS; } diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index 423f333..0290b84 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -1473,7 +1473,7 @@ gfc_simplify_int (gfc_expr * e, gfc_expr * k) gfc_expr *rpart, *rtrunc, *result; int kind; - kind = get_kind (BT_REAL, k, "INT", gfc_default_real_kind); + kind = get_kind (BT_INTEGER, k, "INT", gfc_default_integer_kind); if (kind == -1) return &gfc_bad_expr; -- cgit v1.1