https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120753
Benjamin Schulz <schulz.benjamin at googlemail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #15 from Benjamin Schulz <schulz.benjamin at googlemail dot com> --- As the OpenMP standard really seems to forbid struct members in clauses https://www.openmp.org/spec-html/5.2/openmpsu19.html I declare this bug indeed as invalid. It is with OpenAcc, where there is no such restriction. Here I can create a small OpenAcc snipped with a deviceptr in a struct that Nvidia's nvc++ compiles without warnings to generate valid cuda code, whereas gcc refuses compilation, despite the code strictly adhering to the OpenACC standard. So I opened another bug for this problem, as it seems to be an actual bug for OpenACC. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121170 (Nevertheless, the refusal to have struct members in OpenMP shared constructs or is_device_ptr constructs is embarassing. It e.g. creates a choice between unnecessary copies between threads or that one makes the code unreadable by unpacking the struct into separate variables....)