diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-03-12 17:22:28 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-03-12 17:22:28 +0000 |
commit | 1eabf876d50f6b9041fb36b5229a8b6634773d3e (patch) | |
tree | f4f86da42824b412d29887f53174c78d680211e5 /gcc | |
parent | 6684d2dbff7b3ba4a8ef1bef3446dd9df581444f (diff) | |
download | gcc-1eabf876d50f6b9041fb36b5229a8b6634773d3e.zip gcc-1eabf876d50f6b9041fb36b5229a8b6634773d3e.tar.gz gcc-1eabf876d50f6b9041fb36b5229a8b6634773d3e.tar.bz2 |
re PR fortran/87673 (Errors caused by using function for character length in allocate with typespec)
2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/87673
* match.c (gfc_match_type_spec): Remove call to
gfc_resolve_expr for character length.
2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/87673
* gfortran.dg/charlen_17.f90: New test.
From-SVN: r269624
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/match.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/charlen_17.f90 | 14 |
4 files changed, 25 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4982574..edcacf5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/87673 + * match.c (gfc_match_type_spec): Remove call to + gfc_resolve_expr for character length. + 2019-03-12 Martin Liska <mliska@suse.cz> * decl.c (add_init_expr_to_sym): Replace usage of 'can't' diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 9ff1c35..eba428f 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -2122,8 +2122,6 @@ gfc_match_type_spec (gfc_typespec *ts) ts->type = BT_CHARACTER; m = gfc_match_char_spec (ts); - if (ts->u.cl && ts->u.cl->length) - gfc_resolve_expr (ts->u.cl->length); if (m == MATCH_NO) m = MATCH_YES; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a640b6a..edde1c1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/87673 + * gfortran.dg/charlen_17.f90: New test. + 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> * gcc.target/s390/memset-1.c: Adapt test case for new scheduling. diff --git a/gcc/testsuite/gfortran.dg/charlen_17.f90 b/gcc/testsuite/gfortran.dg/charlen_17.f90 new file mode 100644 index 0000000..6b766d8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/charlen_17.f90 @@ -0,0 +1,14 @@ +! { dg-do compile } +! PR 87673 - used to cause errors about non-pure functions. + +module x + implicit none +contains + pure function foo() result(res) + character(len=:), allocatable :: res + allocate (character(bar()) :: res) + end function foo + pure integer function bar() + bar = 1 + end function bar +end module x |