On Wed, Aug 07, 2019 at 09:09:49AM -0700, Steve Kargl wrote:
> On Wed, Aug 07, 2019 at 01:58:17PM +0100, Mark Eggleston wrote:
> >
> > DATA statements for logical and character variable compile but do not work:
> >
> > program test
> > character(4) :: c
> > data c / z'41424344' /
> > write(*, *) "'" // c // "'", transfer(c, 0_4)
> > end program test
> >
> > Outputs:
> >
> > '' 0
Prior versions of gfortran give
% gfc9 -c a.f90
a.f90:3:10:
3 | data c / z'41424344' /
| 1
Error: Incompatible types in DATA statement at (1); attempted conversion of
INTEGER(16) to CHARACTER(1)
I have a patch that now does
gfcx -c a.f90
a.f90:3:10-23:
3 | data c / z'41424344' /
| 1 2
Error: data-stmt-object at (1) has type 'CHARACTER', which conflicts with the
BOZ literal constant at (2)
BTW, -fallow-invalid-boz does enable all previous broken
usages of BOZ. For example, BOZ can be an actual argument
in only a few intrinsic subprograms listed in F2018. I've
allowed only a few exceptions such as AND(z'1234',4242)
which mirros IAND() is documented behavior.
PS: Have you gotten write access to the source code repository, yet?
--
Steve