[Patch, fortran] PR51976 - [F2003] Support deferred-length character components of derived types (allocatable string length)

Tobias Burnus burnus@net-b.de
Wed Feb 19 22:23:00 GMT 2014


Hi Paul,

Paul Richard Thomas wrote:
> I had completely forgotten about this patch... I even thought that it
> had been applied :-) I'll have time, either tomorrow evening or Saturday to take a look.
> After nearly 11 months, a couple more days will not hurt!

I think it went as follows: We found out that some code doesn't - in 
particular code which uses array-valued deferred-length characters. 
After trying to fix it, you (Paul) decided that the simplest way to fix 
it would be the new array descriptor - and then it got stuck.

Regarding this patch, I have mixed feelings. I think it is a much wished 
feature - but I am not sure about the stability of the patch and it is 
rather large, given that we are in stage 4.


Regarding the new array descriptor: I think it would be useful if we 
could get the new descriptor working early in the GCC 4.10/5.0/2015 
development stage. I think the main large task is to convert all all 
remaining stride-based code to stride-multiplier code without breaking 
vectorization and causing other regressions. Additionally, it would be 
nice to get rid of "offset" - and have in the descriptor always an 
lower_bound of 0, except for pointers/allocatables (cf. TS29113). I 
think the version on the branch is in a relatively good shape; however, 
the stride and offset changes seem to be of such a kind that one needs 
to modify several code locations simultaneously - otherwise, it will 
break badly. Additionally, all remaining regressions have to be fixed. 
When that's done, adding some extra field is all what's needed. (As 
follow up, enough remains to be done: I'd like to use it for all 
class(*), possibly even for nonarray class(type), assumed-rank needs an 
update, assumed-shape/-rank/deferred-shape character arrays also have to 
be adapted (also mandated by TS29113 for interop). And we should do an 
ABI cleanup in libgfortran as we have now the chance to break the ABI.) 
- Is anyone volunteering?

Also planned for GCC post-4.9: Getting an initial really working coarray 
version.

(Besides more mundane tasks like finishing finalization, completing OOP 
or ...)

Tobias



More information about the Gcc-patches mailing list