aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2019-03-12 17:22:28 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2019-03-12 17:22:28 +0000
commit1eabf876d50f6b9041fb36b5229a8b6634773d3e (patch)
treef4f86da42824b412d29887f53174c78d680211e5
parent6684d2dbff7b3ba4a8ef1bef3446dd9df581444f (diff)
downloadgcc-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
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/match.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/charlen_17.f9014
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