https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- 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.