------- Comment #1 from dfranke at gcc dot gnu dot org 2007-07-09 09:10 ------- >From docs:
RESULT = TRANSFER(SOURCE, MOLD[, SIZE]) The result has the same type as MOLD, with the bit level representation of SOURCE. If SIZE is present, the result is a one-dimensional array of length SIZE. If SIZE is absent but MOLD is an array (of any size or shape), the result is a one- dimensional array of the minimum length needed to contain the entirety of the bitwise representation of SOURCE. If SIZE is absent and MOLD is a scalar, the result is a scalar. Obviously, in this case TRANSFER does not return an "one- dimensional array of the minimum length" but a scalar. Reduced testcase: $> cat pr32689.f90 program gfcbug67 integer :: i(3) print *, size (transfer (1, i)) end program gfcbug67 -- dfranke at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dfranke at gcc dot gnu dot | |org OtherBugsDependingO| |31237 nThis| | Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC host triplet|i686-pc-linux-gnu | Known to fail| |4.3.0 Known to work| |4.2.1 Last reconfirmed|0000-00-00 00:00:00 |2007-07-09 09:10:41 date| | Summary|[4.3 regression] with SIZE |[4.3 regression] TRANSFER |or TRANSFER |returns scalar, even if MOLD | |is an array http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32689