Bug report gcc 4.8

Tobias Burnus burnus@net-b.de
Tue May 13 17:13:00 GMT 2014


Am 13.05.2014 17:18, schrieb W Spector:
> 1.) Why would g95 get it right and gfortran would not?

Because they are different compilers. The problem is that gfortran (and 
probably/possibly also g95) made an unfortunate choice in their array 
descriptor, which can nicely represent nearly everything required by 
Fortran 90/95/2003 but not everything.

Changing the array descriptor is possible and planed, however, it will 
cause an ABI breakage with all existing code, which uses array 
descriptors. Thus, the idea is to implement it properly and then do the 
switch over.

This work is done on the "fortran-dev" branch and it is based on and 
compatible with TS29113; it mostly works, but there are still some 
issues. In particular, the offset calculation has some issues and one of 
the main other hurdles is to ensure arrays continue to be vectorized - 
something which tends to break.

> 2.) In any event, if there is something gfortran doesn't support, it 
> should issue an error message - rather than ICEing.  And again this 
> ICE has been known about since 2008...

Well, the problem only occurs when the access is such that the stride is 
not multiples of the element size. Most of the time it is and in most 
cases it is not diagnosable at compile time.


As GCC/gfortran is open source: Feel free to contribute to the 
development of gfortran, which is mostly done by volunteers in their 
spare time. We are happy to help you to find the way through the code.

Otherwise, I am currently busy with coarrays and have no idea when I 
will find time to work on the new array descriptor - and hence, on 
completing the TS29113 support. It surely is on my wishlist. I also do 
not know whether others (current contributors or new ones, potentially: 
you) indent to work on this feature.

Tobias



More information about the Fortran mailing list