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