From 6b9696405bb3994f11514e82ca9f3fbd29f48b05 Mon Sep 17 00:00:00 2001 From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sun, 29 Oct 2006 10:27:39 +0000 Subject: [PATCH] PR fortran/29629 * trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor of init_val_sym and outer_sym to FL_VARIABLE. * testsuite/libgomp.fortran/pr29629.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118134 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-openmp.c | 2 ++ libgomp/ChangeLog | 5 +++++ libgomp/testsuite/libgomp.fortran/pr29629.f90 | 20 +++++++++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 libgomp/testsuite/libgomp.fortran/pr29629.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6c24c4751305..31c6c6f47136 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2006-10-29 Jakub Jelinek <jakub@redhat.com> + + PR fortran/29629 + * trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor + of init_val_sym and outer_sym to FL_VARIABLE. + 2006-10-29 Kazu Hirata <kazu@codesourcery.com> * intrinsic.texi: Fix a typo. diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index 32020cc433a6..fa8be1d72ecf 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -300,6 +300,7 @@ gfc_trans_omp_array_reduction (tree c, gfc_symbol *sym, locus where) init_val_sym.ts = sym->ts; init_val_sym.attr.referenced = 1; init_val_sym.declared_at = where; + init_val_sym.attr.flavor = FL_VARIABLE; backend_decl = omp_reduction_init (c, gfc_sym_type (&init_val_sym)); init_val_sym.backend_decl = backend_decl; @@ -308,6 +309,7 @@ gfc_trans_omp_array_reduction (tree c, gfc_symbol *sym, locus where) outer_sym.as = gfc_copy_array_spec (sym->as); outer_sym.attr.dummy = 0; outer_sym.attr.result = 0; + outer_sym.attr.flavor = FL_VARIABLE; outer_sym.backend_decl = create_tmp_var_raw (TREE_TYPE (decl), NULL); /* Create fake symtrees for it. */ diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index d5788240f801..139b7fc5c1bb 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2006-10-29 Jakub Jelinek <jakub@redhat.com> + + PR fortran/29629 + * testsuite/libgomp.fortran/pr29629.f90: New test. + 2006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr> PR libgomp/29494 diff --git a/libgomp/testsuite/libgomp.fortran/pr29629.f90 b/libgomp/testsuite/libgomp.fortran/pr29629.f90 new file mode 100644 index 000000000000..9ccddffb0392 --- /dev/null +++ b/libgomp/testsuite/libgomp.fortran/pr29629.f90 @@ -0,0 +1,20 @@ +! PR fortran/29629 +! { dg-do run } + +program pr29629 + integer :: n + n = 10000 + if (any (func(n).ne.10000)) call abort + contains + function func(n) + integer, intent(in) :: n + integer, dimension(n) :: func + integer :: k + func = 0 +!$omp parallel do private(k), reduction(+:func), num_threads(4) + do k = 1, n + func = func + 1 + end do +!$omp end parallel do + end function +end program -- GitLab