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

Nathan Sidwell <nathan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |nathan at gcc dot 
gnu.org

--- Comment #6 from Nathan Sidwell <nathan at gcc dot gnu.org> ---
The code is ill-formed, for (at least) 3 reasons:

1) only one of the member functions is marked as 'acc routine', before being
called in an offloaded region. the 'pi' function is marked, but the iterator
members, _DummyRed member and the function invoker are not.

2) the loop itself does not contain independent iterations

3) the 'copy(__thread_results[1]...) is copying a single element array, but
then indexing it incorrectly.

Now, openacc doesn't appear to provide any mechanism for marking (say) all the
member fns of a class as routines, and apparently in-class use of 'pragma acc
routine' is not permitted.

Openacc  doesn't appear to address non-pod data objects or member functions.
Let alone the complexities of using the STL.

The compiler shouldn't blow up of course ...

Reply via email to