Commit fd2e4e99 by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/43337 (ICE: in lookup_decl_in_outer_ctx, at omp-low.c:2103)

	PR middle-end/43337
	* tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
	with non-local decl doesn't need chain.

	* gfortran.dg/gomp/pr43337.f90: New test.

From-SVN: r158527
parent 74e27d0d
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
* dwarf2out.c (lower_bound_default): For DW_LANG_Python return * dwarf2out.c (lower_bound_default): For DW_LANG_Python return
0 for -gdwarf-4. 0 for -gdwarf-4.
PR middle-end/43337
* tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
with non-local decl doesn't need chain.
2010-04-19 Vladimir Makarov <vmakarov@redhat.com> 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
* ira-color.c (allocno_reload_assign): Avoid accumulating * ira-color.c (allocno_reload_assign): Avoid accumulating
......
2010-04-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/43337
* gfortran.dg/gomp/pr43337.f90: New test.
2010-04-19 Richard Guenther <rguenther@suse.de> 2010-04-19 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43796 PR tree-optimization/43796
......
! PR middle-end/43337
! { dg-do compile }
! { dg-options "-fopenmp -O2 -g" }
subroutine pr43337
integer :: a, b(10)
call foo (b)
call bar (b)
contains
subroutine foo (b)
integer :: b(10)
!$omp parallel if (.false.)
!$omp task if (.false.) shared(b)
do a = 1, 10
b(a) = 1
end do
!$omp end task
!$omp end parallel
end subroutine foo
subroutine bar (b)
integer :: b(10)
!$omp parallel if (.false.)
!$omp parallel if (.false.)
do a = 1, 10
b(a) = 1
end do
!$omp end parallel
!$omp end parallel
end subroutine bar
end subroutine pr43337
/* Nested function decomposition for GIMPLE. /* Nested function decomposition for GIMPLE.
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -1088,7 +1088,8 @@ convert_nonlocal_omp_clauses (tree *pclauses, struct walk_stmt_info *wi) ...@@ -1088,7 +1088,8 @@ convert_nonlocal_omp_clauses (tree *pclauses, struct walk_stmt_info *wi)
{ {
bitmap_set_bit (new_suppress, DECL_UID (decl)); bitmap_set_bit (new_suppress, DECL_UID (decl));
OMP_CLAUSE_DECL (clause) = get_nonlocal_debug_decl (info, decl); OMP_CLAUSE_DECL (clause) = get_nonlocal_debug_decl (info, decl);
need_chain = true; if (OMP_CLAUSE_CODE (clause) != OMP_CLAUSE_PRIVATE)
need_chain = true;
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment