Am 05.01.26 um 10:53 PM schrieb Harald Anlauf:
Am 05.01.26 um 10:06 PM schrieb Jerry D:
I just finished testing this. Looks OK to go.

I did not see anything obviously wrong with this.

Commit at your discretion.

Jerry

Hi Jerry,

thanks for checking.  Unfortunately, I found a last-minute issue...

The following code was previously miscompiled and is now rejected:

program p
   integer :: n = 2
   call foo ([character(n) :: 'abc'])
contains
   subroutine foo (x)
     character(*), intent(in) :: x(:)
     print *, len(x)
   end subroutine foo
end

gcc-15 prints 3 instead of 2; gcc-16 with my patch does:

pr47425-xx.f90:3:36:

     3 |   call foo ([character(n) :: 'abc'])
       |                                    ^
Error: size of variable 'A.5' is too large

This is triggered by the hunk from trans-array.cc.
I have to think a little bit longer how to proceed...

I have not yet succeeded in solving the puzzle with
clean translation of the variable-length constructor
for constant-length constant string elements.
I therefore plan to split this part into a part 1
that is the submitted one minus the trans-array.cc
part, and will continue to work on the remaining issues.

Cheers,
Harald

Reply via email to