This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/49636] Associate construct confused with slightly complicated case
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 5 Jul 2011 09:05:48 +0000
- Subject: [Bug fortran/49636] Associate construct confused with slightly complicated case
- Auto-submitted: auto-generated
- References: <bug-49636-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49636
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
CC| |burnus at gcc dot gnu.org
Depends on| |37577
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-07-05 09:05:46 UTC ---
I think this is one of the bugs, which depend on a new array descriptor (cf.
http://gcc.gnu.org/wiki/ArrayDescriptorUpdate).
The problem is that for
associate (i=>t2%j%i)
the array
i(1:3)
is not contiguous in memory. In the current array descriptor implementation,
only arrays with strides which are multiples of the block are possible - that's
fine grained enough if there is only "integer :: i" but no longer if there is
also another element ("integer :: k"). In that case, one needs to have strides
which are byte-based ("stride multiplier")
It is rather high on the to-do list of gfortran, but as the patch will be
invasive and will have to be done at once as it breaks the ABI (i.e. the
downward compatibility), it is still pending. The idea is that one will use a
descriptor which is compatible with the upcomming TR 29113. (TR = Technical
Report, small standard extension which will be also integrated in the next
Fortran standard.)
Cf. http://gcc.gnu.org/wiki/ArrayDescriptorUpdate
Given some other larger on-going projects, the lack of time of some core
developers and given that GCC 4.7 will probably already branched in September
combined with the need for ABI breakage [which should happen only once], I fear
it won't be fixed for 4.7 but only later. :-(