public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/64765] New: [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'"
@ 2015-01-24 10:07 burnus at gcc dot gnu.org
  2015-10-08 15:57 ` [Bug c/64765] " tschwinge at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: burnus at gcc dot gnu.org @ 2015-01-24 10:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64765

            Bug ID: 64765
           Summary: [OpenACC] Bogus "'copy' is not valid for '#pragma acc
                    kernels loop'"
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Keywords: openacc, rejects-valid
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: tschwinge at gcc dot gnu.org

The following program gives

foo.c:2:36: error: 'copy' is not valid for '#pragma acc kernels loop'
foo.c:2:26: error: 'create' is not valid for '#pragma acc kernels loop'
 #pragma acc kernels loop create(f) copy(r)
                          ^

I believe copy and create are invalid for LOOP but they should be valid for
KERNELS - and, hence, also for KERNEL LOOPS. (The equivalent Fortran program
compiles.)


Test case:

void foo(float *f, double *r) {
#pragma acc kernels loop create(f) copy(r)
for(;;) {}
}


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/64765] [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'"
  2015-01-24 10:07 [Bug c/64765] New: [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'" burnus at gcc dot gnu.org
@ 2015-10-08 15:57 ` tschwinge at gcc dot gnu.org
  2015-10-27  8:39 ` tschwinge at gcc dot gnu.org
  2015-10-27  8:42 ` tschwinge at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2015-10-08 15:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64765

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2015-10-08
           Assignee|unassigned at gcc dot gnu.org      |tschwinge at gcc dot gnu.org
     Ever confirmed|0                           |1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/64765] [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'"
  2015-01-24 10:07 [Bug c/64765] New: [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'" burnus at gcc dot gnu.org
  2015-10-08 15:57 ` [Bug c/64765] " tschwinge at gcc dot gnu.org
@ 2015-10-27  8:39 ` tschwinge at gcc dot gnu.org
  2015-10-27  8:42 ` tschwinge at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2015-10-27  8:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64765

--- Comment #1 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
Author: tschwinge
Date: Tue Oct 27 08:39:15 2015
New Revision: 229404

URL: https://gcc.gnu.org/viewcvs?rev=229404&root=gcc&view=rev
Log:
[PR c/64765, c/64880] Support OpenACC Combined Directives in C, C++

        gcc/c-family/
        PR c/64765
        PR c/64880
        * c-common.h (c_oacc_split_loop_clauses): Declare function.
        * c-omp.c (c_oacc_split_loop_clauses): New function.
        gcc/c/
        PR c/64765
        PR c/64880
        * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
        parameters, and handle these.  Adjust all users.
        (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
        into...
        (c_parser_oacc_kernels_parallel): ... this new function.  Adjust
        all users.
        * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
        declare functions.
        (c_finish_omp_construct): Declare function.
        * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
        Merge functions into...
        (c_finish_omp_construct): ... this new function.
        gcc/cp/
        PR c/64765
        PR c/64880
        * cp-tree.h (finish_oacc_kernels, finish_oacc_parallel): Don't
        declare functions.
        (finish_omp_construct): Declare function.
        * parser.c (cp_parser_oacc_loop): Add p_name, mask, cclauses
        formal parameters, and handle these.  Adjust all users.
        (cp_parser_oacc_kernels, cp_parser_oacc_parallel): Merge functions
        into...
        (cp_parser_oacc_kernels_parallel): ... this new function.  Adjust
        all users.
        * semantics.c (finish_oacc_kernels, finish_oacc_parallel): Merge
functions into...
        (finish_omp_construct): ... this new function.
        gcc/
        * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
        (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
        (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
        gcc/testsuite/
        PR c/64765
        PR c/64880
        * c-c++-common/goacc/loop-1.c: Don't skip for C++.  Don't prune
        sorry message.
        (PR64765): New function.
        * gfortran.dg/goacc/coarray_2.f90: XFAIL.
        * gfortran.dg/goacc/combined_loop.f90: Extend.  Don't prune
        sorry message.
        * gfortran.dg/goacc/cray.f95: Refine prune directive.
        * gfortran.dg/goacc/parameter.f95: Likewise.
        libgomp/
        * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
        * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.

Added:
    trunk/libgomp/testsuite/libgomp.oacc-c-c++-common/combdir-1.c
    trunk/libgomp/testsuite/libgomp.oacc-fortran/combdir-1.f90
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.h
    trunk/gcc/c-family/c-omp.c
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-parser.c
    trunk/gcc/c/c-tree.h
    trunk/gcc/c/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/parser.c
    trunk/gcc/cp/semantics.c
    trunk/gcc/fortran/trans-openmp.c
    trunk/gcc/gimplify.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/goacc/loop-1.c
    trunk/gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
    trunk/gcc/testsuite/gfortran.dg/goacc/combined_loop.f90
    trunk/gcc/testsuite/gfortran.dg/goacc/cray.f95
    trunk/gcc/testsuite/gfortran.dg/goacc/parameter.f95
    trunk/gcc/tree-pretty-print.c
    trunk/gcc/tree.def
    trunk/gcc/tree.h
    trunk/libgomp/ChangeLog


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/64765] [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'"
  2015-01-24 10:07 [Bug c/64765] New: [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'" burnus at gcc dot gnu.org
  2015-10-08 15:57 ` [Bug c/64765] " tschwinge at gcc dot gnu.org
  2015-10-27  8:39 ` tschwinge at gcc dot gnu.org
@ 2015-10-27  8:42 ` tschwinge at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2015-10-27  8:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64765

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
Fixed in r229404.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-10-27  8:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-24 10:07 [Bug c/64765] New: [OpenACC] Bogus "'copy' is not valid for '#pragma acc kernels loop'" burnus at gcc dot gnu.org
2015-10-08 15:57 ` [Bug c/64765] " tschwinge at gcc dot gnu.org
2015-10-27  8:39 ` tschwinge at gcc dot gnu.org
2015-10-27  8:42 ` tschwinge 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).