aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/check.c
diff options
context:
space:
mode:
authorSteven G. Kargl <kargls@comcast.net>2005-02-19 20:07:47 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2005-02-19 20:07:47 +0000
commitc60d77d4db7aec48e2fb0997400c4d1177b726aa (patch)
tree46ab6a34befac7343839d934610e531bf1570828 /gcc/fortran/check.c
parent04c90eea0779dd173baa01b96aed683fec326207 (diff)
downloadgcc-c60d77d4db7aec48e2fb0997400c4d1177b726aa.zip
gcc-c60d77d4db7aec48e2fb0997400c4d1177b726aa.tar.gz
gcc-c60d77d4db7aec48e2fb0997400c4d1177b726aa.tar.bz2
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
Diffstat (limited to 'gcc/fortran/check.c')
-rw-r--r--gcc/fortran/check.c12
1 files changed, 10 insertions, 2 deletions
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;
}