http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58851
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- How about the following (untested)? It has a bit less coverage but hopefully it is still sufficient. Additionally, it should be portable. --- a/gcc/testsuite/gfortran.dg/unlimited_polymorphic_13.f90 +++ b/gcc/testsuite/gfortran.dg/unlimited_polymorphic_13.f90 @@ -20,0 +21,8 @@ contains + real(c1) :: rc1 + real(c2) :: rc2 + real(c3) :: rc3 + real(c4) :: rc4 + complex(c1) :: cc1 + complex(c2) :: cc2 + complex(c3) :: cc3 + complex(c4) :: cc4 @@ -22,10 +30,14 @@ contains - select case (k) - case (4) - sz = 32*2 - case (8) - sz = 64*2 - case (10,16) - sz = 128*2 - case default - call abort() - end select + if (k == c1) then + sz = storage_size(cc1) + if (sz /= 2*storage_size(rc1)) call abort() + elseif (k == c2) then + sz = storage_size(cc2) + if (sz /= 2*storage_size(rc2)) call abort() + elseif (k == c3) then + sz = storage_size(cc3) + if (sz /= 2*storage_size(rc3)) call abort() + elseif (k == c4) then + sz = storage_size(cc4) + if (sz /= 2*storage_size(rc4)) call abort() + endif + if (sz < 2) call abort()