This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/33719] New: "#pragma omp for firstprivate(shared_var)" in function labelled 'shared_var' as private
- From: "geir at cray dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Oct 2007 20:06:20 -0000
- Subject: [Bug c/33719] New: "#pragma omp for firstprivate(shared_var)" in function labelled 'shared_var' as private
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This case involves a function containing only a '#pragma omp for' directive and
a 'for' loop to go with it. The invoking routine is the one that determines
whether the variable is shared or private. There is no way to supply this
information within the function without expanding what the function does.
$ cat >bug2874.c
/* derived from ISU's tests RTED_OpenMP/C/SECTION_B/c_B_7_3_e_D_s.c
c_B_7_3_f_D_s.c, c_B_7_3_g_D_s.c */
#include <omp.h>
#define N 17
void sub(double *shared_var,double result_var[],int thread_num){
int i = 0;
#pragma omp for firstprivate(shared_var)
for (i=0;i<N;i++){
result_var[thread_num] = *shared_var;
}
}
$ gcc -c -fopenmp bug2874.c
bug2874.c: In function 'sub':
bug2874.c:9: error: firstprivate variable 'shared_var' is private in outer
context
$ gcc --version
gcc (GCC) 4.2.1 20070719 (rpm:3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
--
Summary: "#pragma omp for firstprivate(shared_var)" in function
labelled 'shared_var' as private
Product: gcc
Version: 4.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: geir at cray dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33719