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