This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gfortran] Fix PR 15211


Paul Brook wrote:
On Monday 31 May 2004 19:54, Tobias Schlüter wrote:

Looking again at the code in gfc_conv_intrinsic_len it occurred to me
that all strings in an array must be of the same length. Therefor this
one line fix should do the trick. The test for arg->ref == NULL is
clearly meant to separate the case of arg->ref == REF_SUBSTRING, but is
meaningless in the case of REF_ARRAY or REF_COMPONENT (which I will look
into after this is approved).

2004-05-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>

	* trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
	of strings.


You need to iterate over all the refs. You can have an substring (or component ref) of an arrayref.


So, to make sure I understand correctly, checking (arg->ref == NULL || (arg->ref->next == NULL && arg->ref->type == REF_ARRAY)) should fix the PR, but leave us with a problem in the case of something like
a(5)(1:3)
or
a(5)%string
?


I can submit a patch with the revised check, but I don't think I can fix the other two examples, as my insight into the scalarizer is close to non-existant.

- Tobi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]