aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2018-07-04 18:08:16 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2018-07-04 18:08:16 +0000
commitfa9371cae02b7ddee8f67e6ce8f1cddc3d8fc0e2 (patch)
tree12c792ccfabff415ab6cab0bc526087bf9d7587b /gcc
parent89bc4ab198a0be9e5b2d493f9b25f7ea3df336ef (diff)
downloadgcc-fa9371cae02b7ddee8f67e6ce8f1cddc3d8fc0e2.zip
gcc-fa9371cae02b7ddee8f67e6ce8f1cddc3d8fc0e2.tar.gz
gcc-fa9371cae02b7ddee8f67e6ce8f1cddc3d8fc0e2.tar.bz2
re PR fortran/82009 ([F08] ICE with block construct)
2018-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/82009 * trans-decl.c (gfc_process_block_locals): Delete assert and set saved_local_decls = NULL_TREE. * gfortran.dg/block_16.f08. New test. From-SVN: r262416
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-decl.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/block_16.f0826
4 files changed, 38 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ac4a237..b43c083 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2018-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/82009
+ * trans-decl.c (gfc_process_block_locals): Delete assert and set
+ saved_local_decls = NULL_TREE.
+
2018-07-02 Richard Biener <rguenther@suse.de>
PR lto/86321
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 254768c..08c1ebd 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -6751,7 +6751,7 @@ gfc_process_block_locals (gfc_namespace* ns)
{
tree decl;
- gcc_assert (saved_local_decls == NULL_TREE);
+ saved_local_decls = NULL_TREE;
has_coarray_vars = false;
generate_local_vars (ns);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6c5efa4..12e49b6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/82009
+ * gfortran.dg/block_16.f08. New test.
+
2018-07-04 Aldy Hernandez <aldyh@redhat.com>
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust test because aarch64
diff --git a/gcc/testsuite/gfortran.dg/block_16.f08 b/gcc/testsuite/gfortran.dg/block_16.f08
new file mode 100644
index 0000000..165c719
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/block_16.f08
@@ -0,0 +1,26 @@
+! { dg-do compile )
+! PR82009 [F08] ICE with block construct
+MODULE sparse_matrix_csx_benchmark_utils
+ IMPLICIT NONE
+CONTAINS
+ SUBROUTINE sparse_matrix_csr_benchmark ( )
+ WRITE(*,*) 'At*x: t'
+ block
+ integer, dimension(1), parameter :: idxs=[1]
+ integer :: i, idx
+ do i = 1, size(idxs)
+ idx = idxs(i)
+ enddo
+ end block
+ END SUBROUTINE sparse_matrix_csr_benchmark
+ SUBROUTINE sparse_matrix_csc_benchmark ( )
+ WRITE(*,*) 'An*x: t'
+ block
+ integer, dimension(1), parameter :: idxs=[1]
+ integer :: i, idx
+ do i = 1, size(idxs)
+ idx = idxs(i)
+ enddo
+ end block
+ END SUBROUTINE sparse_matrix_csc_benchmark
+END MODULE sparse_matrix_csx_benchmark_utils