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 ...