On Mon, Feb 04, 2019 at 09:55:39PM +0100, Harald Anlauf wrote: > > On 02/04/19 10:49, Paul Richard Thomas wrote: > > Hi Harald, > > > > After nearly 12 years, I have been found out! > > you cannot hide forever. > > > OK for trunk. Since it has been such a long time, I suggest that you > > limit your backporting efforts to 8-branch and, at the most, 7-branch. > > Sure. In fact, I plan to wait with backports in the hope to better > understand the other issues in the PR. > > > Will you attempt to tackle the other issues in the PR? > > I am still trying, but also wondering why such simple things as > > integer :: i > character(*), parameter :: s = 'abcdef' > character(1) :: t = transfer ([ s(1:1) ], 'x') ! no ICE > character(1) :: u = transfer ([(s(i:i),i=1,1)], 'x') ! ICE > print *, len (t), len (u) ! ICE happens when u is referenced > end > > are going down so different routes during simplification. :-( > Any hint is highly welcome!
The best explanation I have is that gfortran sort of doesn't know how to handle implied-do-loops. Sometimes gfortran does what you expect, and sometimes you're off in the weeds trying to understand why 'i' is handled correctly. -- Steve