[J3] BOZ in an array constructor
Robert Corbett
rpcorbett at att.net
Sun Jul 7 16:26:01 EDT 2019
I think C7111 and C7112 are irrelevant. I think C7109 is the relevant constraint.
Bob Corbett
> On Jul 7, 2019, at 12:43 PM, Steven G. Kargl via J3 <j3 at mailman.j3-fortran.org> wrote:
>
> gfortran's handling of BOZ is rather broken, and I'm
> currently investigating several fixes. In writing
> a test program (assuming kind = 4 and 8 are valid), I
> came up with
>
> program foo
> integer(kind=4) :: i(2) = int([z'1234', z'5678'])
> integer(kind=8) :: j(2) = int([integer(8) :: z'1234', z'5678'])
> print *, i
> end program foo
>
> It seems to me C7111 prevents the i(2) case and C7112 prevents
> the j(2) case. One would need to write
>
> program foo
> integer(kind=4) :: i(2) = [int(z'1234'), int(z'5678')]
> integer(kind=8) :: j(2) = [integer(8) :: int(z'1234'), int(z'5678')]
> print *, i
> end program foo
>
> The j(2) case could also be written as
>
> integer(kind=8) :: j(2) = [int(z'1234', 8), int(z'5678, 8)]
>
> Is my interpretation of C7111 and C7112 correct?
>
> --
> Steve
More information about the J3
mailing list