aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/primary.c
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2005-04-25 00:09:11 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2005-04-25 00:09:11 +0000
commit860c8f3ba9bad8ddc21ab8b87b2881b4c7fda28d (patch)
tree3658d9e25126c9de8a4bcb31050b0b21afdca803 /gcc/fortran/primary.c
parent1fb2fbeb218f505cd073a975b171eca5194bd6ef (diff)
downloadgcc-860c8f3ba9bad8ddc21ab8b87b2881b4c7fda28d.zip
gcc-860c8f3ba9bad8ddc21ab8b87b2881b4c7fda28d.tar.gz
gcc-860c8f3ba9bad8ddc21ab8b87b2881b4c7fda28d.tar.bz2
re PR fortran/20879 (argument to ICHAR must have length one)
2005-04-25 Paul Brook <paul@codesourcery.com> Steven G. Kargl <kargls@comcast.net> PR fortran/20879 * check.c (gfc_check_ichar_iachar): New function. * instinsic.h (gfc_check_ichar_iachar): Add prototype. * intrinsic.c (add_functions): Use it. * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect character expression lengths. testsuite/ * gfortran.dg/ichar_1.f90: New file. Co-Authored-By: Steven G. Kargl <kargls@comcast.net> From-SVN: r98686
Diffstat (limited to 'gcc/fortran/primary.c')
-rw-r--r--gcc/fortran/primary.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 992bc5f..38f9939 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -1516,6 +1516,9 @@ check_substring:
if (primary->expr_type == EXPR_CONSTANT)
primary->expr_type = EXPR_SUBSTRING;
+ if (substring)
+ primary->ts.cl = NULL;
+
break;
case MATCH_NO:
@@ -1989,6 +1992,8 @@ gfc_match_rvalue (gfc_expr ** result)
}
e->ts = sym->ts;
+ if (e->ref)
+ e->ts.cl = NULL;
m = MATCH_YES;
break;
}