On Mon, Feb 20, 2023 at 12:48:38PM +0100, Tobias Burnus wrote: > On 20.02.23 12:15, Jakub Jelinek wrote: > > On Mon, Feb 20, 2023 at 12:07:43PM +0100, Tobias Burnus wrote: > > > As mentioned in the TODO for 'deferred', I think we really want > > > to have NULL as upper value for the domain for the type, but that > > > requires literally hundred of changes to the compiler, which > > > I do not want to due during Stage 4, but that are eventually > > > required.* — In any case, this patch fixes some of the issues > > > in the meanwhile. > > Yeah, the actual len can be in some type's lang_specific member. > > Actually, I think it should be bound to the DECL and not to the TYPE, > i.e. lang_decl not type_lang. > > I just see that, the latter already has a 'tree stringlen' (for I/O) > which probably could be reused for this purpose.
I'd drop the && TREE_CODE (TYPE_SIZE (type)) == SAVE_EXPR and assert == SAVE_EXPR part, with SAVE_EXPRs one never knows if they are added around the whole expression or say some subexpression has it and then some trivial arithmetics happens on the SAVE_EXPR tree. > > Anyway, for the patch for now, I'd probably instead of stripping > > SAVE_EXPR overwrite the 2 sizes with newly built expressions. > > What I now did. (Unchanged otherwise, except that I now also mention > GFC_DECL_STRING_LEN in the TODO.) > > OK for mainline? If Richard doesn't object. Jakub