diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-07-28 23:12:23 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-07-28 23:12:23 +0000 |
commit | 89f1f37ea61d1eff9f01e9a580f44f1964500bc1 (patch) | |
tree | 8eac3a67d1d4a1346b76d8f17f86203ad7eee3e1 | |
parent | 204ada0caa0a1ad2f0a534697bec67f9c26f292d (diff) | |
download | gcc-89f1f37ea61d1eff9f01e9a580f44f1964500bc1.zip gcc-89f1f37ea61d1eff9f01e9a580f44f1964500bc1.tar.gz gcc-89f1f37ea61d1eff9f01e9a580f44f1964500bc1.tar.bz2 |
re PR fortran/71067 (ICE on data initialization with insufficient value)
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/71067
* decl.c (match_data_constant): On error, set 'result' to NULL.
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/71067
* gfortran.dg/pr71067_1.f90: New test.
* gfortran.dg/pr71067_2.f90: Ditto.
From-SVN: r238842
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr71067_1.f90 | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr71067_2.f90 | 7 |
5 files changed, 24 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 752fb02..b9ca106 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/71067 + * decl.c (match_data_constant): On error, set 'result' to NULL. + +2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/71799 * resolve.c(gfc_resolve_iterator): Failure of type conversion need not ICE. diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 1b62833..cf75039 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -395,6 +395,7 @@ match_data_constant (gfc_expr **result) { gfc_error ("Symbol %qs must be a PARAMETER in DATA statement at %C", name); + *result = NULL; return MATCH_ERROR; } else if (dt_sym && gfc_fl_struct (dt_sym->attr.flavor)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 239cf67..a588afe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/71067 + * gfortran.dg/pr71067_1.f90: New test. + * gfortran.dg/pr71067_2.f90: Ditto. + 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/vec-extract-1.c: New test. diff --git a/gcc/testsuite/gfortran.dg/pr71067_1.f90 b/gcc/testsuite/gfortran.dg/pr71067_1.f90 new file mode 100644 index 0000000..76fbcfb --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr71067_1.f90 @@ -0,0 +1,5 @@ +program p + integer :: i = 0 + integer :: z(2) + data z /2*i/ ! { dg-error "must be a PARAMETER in DATA" } +end diff --git a/gcc/testsuite/gfortran.dg/pr71067_2.f90 b/gcc/testsuite/gfortran.dg/pr71067_2.f90 new file mode 100644 index 0000000..6fac4c5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr71067_2.f90 @@ -0,0 +1,7 @@ +! { dg-do compile } +program p + integer :: a(2), b(2), c(2) + data a /2*b1'/ ! { dg-error "must be a PARAMETER in DATA" } + data b /2*o1' ! { dg-error "must be a PARAMETER in DATA" } + data c /2*z1 ! { dg-error "must be a PARAMETER in DATA" } +end |