From: kargl Date: Sun, 9 Dec 2018 04:02:44 +0000 (+0000) Subject: 20180-12-08 Steven G. Kargl X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e6f210070df61ed5133fab1743186a476a550e5;p=thirdparty%2Fgcc.git 20180-12-08 Steven G. Kargl PR fortran/87945 * decl.c (var_element): Inquiry parameters cannit be data objects. 20180-12-08 Steven G. Kargl PR fortran/87945 * gfortran.dg/pr87945_1.f90: New test. * gfortran.dg/pr87945_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266915 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 478372432561..8b6efd4f9d78 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +20180-12-08 Steven G. Kargl + + PR fortran/87945 + * decl.c (var_element): Inquiry parameters cannit be data objects. + 2018-12-08 Steven G. Kargl PR fortran/88025 diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index ac8679886afb..6bc78cc9f54a 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 28a3e7db440c..bd3af9e82ee5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +20180-12-08 Steven G. Kargl + + PR fortran/87945 + * gfortran.dg/pr87945_1.f90: New test. + * gfortran.dg/pr87945_2.f90: New test. + 2018-12-08 Steven G. Kargl 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 000000000000..261312bdef14 --- /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 000000000000..952772ddc038 --- /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