diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-09 04:02:44 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-09 04:02:44 +0000 |
commit | 094a0eccf9bbd33d452713192905a759f9ac27a9 (patch) | |
tree | c4608e0e677d6e76c92e0c9328a4573cde948783 | |
parent | 36f972b713ddf335067475c954d2bed3173ceba9 (diff) | |
download | gcc-094a0eccf9bbd33d452713192905a759f9ac27a9.zip gcc-094a0eccf9bbd33d452713192905a759f9ac27a9.tar.gz gcc-094a0eccf9bbd33d452713192905a759f9ac27a9.tar.bz2 |
20180-12-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/87945
* decl.c (var_element): Inquiry parameters cannit be data objects.
20180-12-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/87945
* gfortran.dg/pr87945_1.f90: New test.
* gfortran.dg/pr87945_2.f90: New test.
From-SVN: r266915
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr87945_1.f90 | 7 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr87945_2.f90 | 7 |
5 files changed, 33 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4783724..8b6efd4 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +20180-12-08 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/87945 + * decl.c (var_element): Inquiry parameters cannit be data objects. + 2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88025 diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index ac86798..6bc78cc 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -281,6 +281,14 @@ var_element (gfc_data_variable *new_var) if (m != MATCH_YES) return m; + if (new_var->expr->expr_type == EXPR_CONSTANT + && new_var->expr->symtree == NULL) + { + gfc_error ("Inquiry parameter cannot appear in a " + "data-stmt-object-list at %C"); + return MATCH_ERROR; + } + sym = new_var->expr->symtree->n.sym; /* Symbol should already have an associated type. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 28a3e7d..bd3af9e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +20180-12-08 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/87945 + * gfortran.dg/pr87945_1.f90: New test. + * gfortran.dg/pr87945_2.f90: New test. + 2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88025 diff --git a/gcc/testsuite/gfortran.dg/pr87945_1.f90 b/gcc/testsuite/gfortran.dg/pr87945_1.f90 new file mode 100644 index 0000000..261312b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr87945_1.f90 @@ -0,0 +1,7 @@ +! { dg-do compile } +! PR fortran/87945 +program p + character :: a, b + data a%len /1/ ! { dg-error "parameter cannot appear in" } + data b%kind /'b'/ ! { dg-error "parameter cannot appear in" } +end diff --git a/gcc/testsuite/gfortran.dg/pr87945_2.f90 b/gcc/testsuite/gfortran.dg/pr87945_2.f90 new file mode 100644 index 0000000..952772d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr87945_2.f90 @@ -0,0 +1,7 @@ +! { dg-do compile } +! PR fortran/87945 +program p + character :: a, b + a%len = 1 ! { dg-error "to a constant expression" } + b%kind = 'b' ! { dg-error "to a constant expression" } +end |