diff options
Diffstat (limited to 'gcc/fortran')
| -rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/fortran/check.c | 12 | ||||
| -rw-r--r-- | gcc/fortran/simplify.c | 2 |
3 files changed, 16 insertions, 3 deletions
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 <kargls@comcast.net> + * 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 <kargls@comcast.net> + * 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; |
