diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-06-24 19:28:18 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-06-24 19:28:18 +0000 |
commit | 7b22b4c6c8dfb60f51e872b3e9f153652b9beadd (patch) | |
tree | 62f49803ce42203d6f5228c0422e7832b8cb8847 | |
parent | 37e373c2b825584243f3d67a31263e5a0f7b9d15 (diff) | |
download | gcc-7b22b4c6c8dfb60f51e872b3e9f153652b9beadd.zip gcc-7b22b4c6c8dfb60f51e872b3e9f153652b9beadd.tar.gz gcc-7b22b4c6c8dfb60f51e872b3e9f153652b9beadd.tar.bz2 |
re PR debug/71642 (ICE: in gen_type_die_with_usage, at dwarf2out.c:22729)
PR debug/71642
* tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
copy the type name.
From-SVN: r237771
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr71642.f90 | 27 | ||||
-rw-r--r-- | gcc/tree-inline.c | 2 |
4 files changed, 38 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71b8181..2bcf6b4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-06-24 Eric Botcazou <ebotcazou@adacore.com> + + PR debug/71642 + * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just + copy the type name. + 2016-06-24 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/71647 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1ec279c..bbb2214 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-06-24 Eric Botcazou <ebotcazou@adacore.com> + + * gfortran.dg/pr71642.f90: New test. + 2016-06-24 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/71647 diff --git a/gcc/testsuite/gfortran.dg/pr71642.f90 b/gcc/testsuite/gfortran.dg/pr71642.f90 new file mode 100644 index 0000000..53491d9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr71642.f90 @@ -0,0 +1,27 @@ +! PR debug/71642 +! { dg-do compile } +! { dg-options "-g" } + +MODULE gauss_colloc + INTEGER, PARAMETER :: dp=8 +CONTAINS +SUBROUTINE collocGauss(h,h_inv,grid,poly,alphai,posi,max_r2,& + periodic,gdim,local_bounds,local_shift,poly_shift,scale,lgrid,error) + REAL(dp), DIMENSION(0:, 0:, 0:), & + INTENT(inout) :: grid + INTEGER, INTENT(inout), OPTIONAL :: lgrid + CONTAINS + SUBROUTINE kloop6 + IF (kJump/=1 .AND. (ikstart+kmax-kstart>=ndim(2)+l_shift(2) .OR.& + ikstart2+kmin-kstart2<=l_ub(2)-ndim(2))) THEN + DO + DO k=kstart2,kend2,-1 + IF ( PRESENT ( lgrid ) ) THEN + grid(ik,ij,ii) = grid(ik,ij,ii) + p_v*res_k + END IF + END DO + END DO + END IF + END SUBROUTINE +END SUBROUTINE +END MODULE gauss_colloc diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index a0d9e93..ef58866 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -377,7 +377,7 @@ remap_decl (tree decl, copy_body_data *id) { tree x = build_variant_type_copy (TREE_TYPE (t)); TYPE_STUB_DECL (x) = TYPE_STUB_DECL (TREE_TYPE (t)); - TYPE_NAME (x) = t; + TYPE_NAME (x) = TYPE_NAME (TREE_TYPE (t)); DECL_ORIGINAL_TYPE (t) = x; } } |