mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-21 23:51:18 +08:00
re PR tree-optimization/48611 (ICE: SIGSEGV in remap_eh_region_nr (tree-inline.c:1194) with -Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop on basic code)
PR tree-optimization/48611 PR tree-optimization/48794 * tree-eh.c (remove_unreachable_handlers): Don't remove regions referenced from RESX or EH_DISPATCH arguments. * gfortran.dg/gomp/pr48611.f90: New test. * gfortran.dg/gomp/pr48794.f90: New test. From-SVN: r173607
This commit is contained in:
parent
e7f7802150
commit
6ae70ea2e6
gcc
@ -1,5 +1,10 @@
|
||||
2011-05-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/48611
|
||||
PR tree-optimization/48794
|
||||
* tree-eh.c (remove_unreachable_handlers): Don't remove regions
|
||||
referenced from RESX or EH_DISPATCH arguments.
|
||||
|
||||
PR debug/48928
|
||||
* dfp.c (decimal_to_decnumber): Handle conversion from
|
||||
dconst{1,2,m1,half}.
|
||||
|
@ -1,5 +1,10 @@
|
||||
2011-05-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/48611
|
||||
PR tree-optimization/48794
|
||||
* gfortran.dg/gomp/pr48611.f90: New test.
|
||||
* gfortran.dg/gomp/pr48794.f90: New test.
|
||||
|
||||
PR debug/48928
|
||||
* gcc.dg/dfp/pr48928.c: New test.
|
||||
|
||||
|
12
gcc/testsuite/gfortran.dg/gomp/pr48611.f90
Normal file
12
gcc/testsuite/gfortran.dg/gomp/pr48611.f90
Normal file
@ -0,0 +1,12 @@
|
||||
! PR tree-optimization/48611
|
||||
! { dg-do compile }
|
||||
! { dg-options "-Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop" }
|
||||
|
||||
integer, allocatable :: a(:)
|
||||
logical :: l
|
||||
!$omp parallel private (a) reduction (.or.:l)
|
||||
do i = 1, 7
|
||||
a(:) = i
|
||||
end do
|
||||
!$omp end parallel
|
||||
end
|
12
gcc/testsuite/gfortran.dg/gomp/pr48794.f90
Normal file
12
gcc/testsuite/gfortran.dg/gomp/pr48794.f90
Normal file
@ -0,0 +1,12 @@
|
||||
! PR tree-optimization/48794
|
||||
! { dg-do compile }
|
||||
! { dg-options "-Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop" }
|
||||
|
||||
integer, allocatable :: a(:)
|
||||
logical :: l
|
||||
if (allocated (a)) call abort
|
||||
!$omp parallel private (a) reduction (.or.:l)
|
||||
do i = 1, 7
|
||||
end do
|
||||
!$omp end parallel
|
||||
end
|
@ -3316,6 +3316,19 @@ remove_unreachable_handlers (void)
|
||||
SET_BIT (r_reachable, region->index);
|
||||
SET_BIT (lp_reachable, lp_nr);
|
||||
}
|
||||
|
||||
/* Avoid removing regions referenced from RESX/EH_DISPATCH. */
|
||||
switch (gimple_code (stmt))
|
||||
{
|
||||
case GIMPLE_RESX:
|
||||
SET_BIT (r_reachable, gimple_resx_region (stmt));
|
||||
break;
|
||||
case GIMPLE_EH_DISPATCH:
|
||||
SET_BIT (r_reachable, gimple_eh_dispatch_region (stmt));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user