------- 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

Reply via email to