public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c/48716] New: gcc OpenMP static variable declared in scope inside construct is predetermined shared @ 2011-04-21 19:49 geir at cray dot com 2011-04-22 14:11 ` [Bug c/48716] " jakub at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: geir at cray dot com @ 2011-04-21 19:49 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48716 Summary: gcc OpenMP static variable declared in scope inside construct is predetermined shared Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned@gcc.gnu.org ReportedBy: geir@cray.com A static variable is declared inside a task construct having a default(none) clause. The OpenMP API says that this variable is predetermined shared. Currently the GNU gcc compiler wants this variable to appear in a SHARED clause. The OpenMP API version 3.0 (May 2008) on p. 78 lines 10 & 20 states: "The following variables have predetermined data-sharing attributes: . . . * Static variables which are declared in a scope inside the construct are shared." On p. 87 lines 22-25 the following appears: "The default(none) clause requires that each variable that is referenced in the construct, and that does not have a predetermined data-sharing attribute, must have its data-sharing attribute explicitly determined by being listed in a data-sharing attribute clause." In Section 2.7 task Construct on p. 59, line 17, we see that the default(none) clause may appear on the #pragma omp task construct. Test case: $ cat ISU3305.c // derived from OpenMP test omp3c/c03_2_9_3_1_3k.c // REFERENCES : OpenMP 3.0, p. 59, line 17 // OpenMP 3.0, p. 78, line 20 // OpenMP 3.0, p. 87, lines 22-25 int main(void) { #pragma omp task default(none) { static int shared_var; shared_var = 1; } return 0; } $ gcc --version gcc (GCC) 4.6.0 20110325 (Cray Inc.) Copyright (C) 2011 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. $ gcc -c -fopenmp ISU3305.c ISU3305.c: In function 'main': ISU3305.c:9:20: error: 'shared_var' not specified in enclosing parallel ISU3305.c:6:13: error: enclosing task $ Expected results from Intel and PGI compilers: $ pgcc -c -mp ISU3305.c $ icc -c -openmp ISU3305.c $ ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c/48716] gcc OpenMP static variable declared in scope inside construct is predetermined shared 2011-04-21 19:49 [Bug c/48716] New: gcc OpenMP static variable declared in scope inside construct is predetermined shared geir at cray dot com @ 2011-04-22 14:11 ` jakub at gcc dot gnu.org 2011-04-22 14:12 ` jakub at gcc dot gnu.org 2011-06-01 11:10 ` jakub at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: jakub at gcc dot gnu.org @ 2011-04-22 14:11 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48716 --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-22 14:10:48 UTC --- Author: jakub Date: Fri Apr 22 14:10:45 2011 New Revision: 172859 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172859 Log: PR c/48716 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also TREE_STATIC variables declared inside of some OpenMP construct. * gcc.dg/gomp/pr48716.c: New test. * g++.dg/gomp/pr48716.C: New test. Added: trunk/gcc/testsuite/g++.dg/gomp/pr48716.C trunk/gcc/testsuite/gcc.dg/gomp/pr48716.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimplify.c trunk/gcc/testsuite/ChangeLog ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c/48716] gcc OpenMP static variable declared in scope inside construct is predetermined shared 2011-04-21 19:49 [Bug c/48716] New: gcc OpenMP static variable declared in scope inside construct is predetermined shared geir at cray dot com 2011-04-22 14:11 ` [Bug c/48716] " jakub at gcc dot gnu.org @ 2011-04-22 14:12 ` jakub at gcc dot gnu.org 2011-06-01 11:10 ` jakub at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: jakub at gcc dot gnu.org @ 2011-04-22 14:12 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48716 --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-22 14:11:46 UTC --- Author: jakub Date: Fri Apr 22 14:11:44 2011 New Revision: 172860 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172860 Log: PR c/48716 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also TREE_STATIC variables declared inside of some OpenMP construct. * gcc.dg/gomp/pr48716.c: New test. * g++.dg/gomp/pr48716.C: New test. Added: branches/gcc-4_6-branch/gcc/testsuite/g++.dg/gomp/pr48716.C branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/gomp/pr48716.c Modified: branches/gcc-4_6-branch/gcc/ChangeLog branches/gcc-4_6-branch/gcc/gimplify.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c/48716] gcc OpenMP static variable declared in scope inside construct is predetermined shared 2011-04-21 19:49 [Bug c/48716] New: gcc OpenMP static variable declared in scope inside construct is predetermined shared geir at cray dot com 2011-04-22 14:11 ` [Bug c/48716] " jakub at gcc dot gnu.org 2011-04-22 14:12 ` jakub at gcc dot gnu.org @ 2011-06-01 11:10 ` jakub at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: jakub at gcc dot gnu.org @ 2011-06-01 11:10 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48716 Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-01 11:09:19 UTC --- Fixed. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-06-01 11:10 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-04-21 19:49 [Bug c/48716] New: gcc OpenMP static variable declared in scope inside construct is predetermined shared geir at cray dot com 2011-04-22 14:11 ` [Bug c/48716] " jakub at gcc dot gnu.org 2011-04-22 14:12 ` jakub at gcc dot gnu.org 2011-06-01 11:10 ` jakub at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).