[Bug c++/102204] OpenMP offload map type restriction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204 Tobias Burnus changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Tobias Burnus --- FIXED on mainline alias GCC 12. Thanks for the report!
[Bug c++/102204] OpenMP offload map type restriction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204 --- Comment #4 from CVS Commits --- The master branch has been updated by Tobias Burnus : https://gcc.gnu.org/g:c22f3fb780775b91548e32937a3ce1095a7c72a3 commit r12-7185-gc22f3fb780775b91548e32937a3ce1095a7c72a3 Author: Tobias Burnus Date: Thu Feb 10 18:57:37 2022 +0100 OpenMP/C++: Permit mapping classes with virtual members [PR102204] PR c++/102204 gcc/cp/ChangeLog: * decl2.cc (cp_omp_mappable_type_1): Remove check for virtual members as those are permitted since OpenMP 5.0. libgomp/ChangeLog: * testsuite/libgomp.c++/target-virtual-1.C: New test. gcc/testsuite/ChangeLog: * g++.dg/gomp/unmappable-1.C: Remove previously expected dg-message.
[Bug c++/102204] OpenMP offload map type restriction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204 --- Comment #3 from Ye Luo --- I tried today's main 3f0fcda37f58d4108feb67de08f181a32bcb6388. This issue persists. Any chance this will be resolved in 12 release?
[Bug c++/102204] OpenMP offload map type restriction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204 --- Comment #2 from Ye Luo --- User code has been written in mostly 5.0 fashion as 4.5 has too many restrictions. For most users, they only need a subset of 5.0 feature with up-to-date compilers and fully implemented 5.0 is not expected. Back to this issue, could the compiler just issue a warning instead of a full stop? In my case, bitwise copying of a struct is sufficient. Namely use the struct as if there is no virtual method. At least this unblock some potential users.
[Bug c++/102204] OpenMP offload map type restriction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204 --- Comment #1 from Jakub Jelinek --- That isn't a made up restriction, but the OpenMP 4.5 standard (and older too) explicitly requiring that "A mappable type cannot contain virtual members." OpenMP 5.0 doesn't have that restriction anymore, but removing it is part of significant other changes that need to be implemented on the compiler and library side and those haven't been done yet. AFAIK no compiler has full OpenMP 5.0 support yet.