diff options
author | Paul Brook <paul@codesourcery.com> | 2005-04-25 00:09:11 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2005-04-25 00:09:11 +0000 |
commit | 860c8f3ba9bad8ddc21ab8b87b2881b4c7fda28d (patch) | |
tree | 3658d9e25126c9de8a4bcb31050b0b21afdca803 /gcc/fortran/primary.c | |
parent | 1fb2fbeb218f505cd073a975b171eca5194bd6ef (diff) | |
download | gcc-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.c | 5 |
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; } |