[patch, fortran] Load scalar intent-in variables at the beginning of procedures
Bernhard Reutner-Fischer
rep.dot.nop@gmail.com
Wed Nov 20 18:00:00 GMT 2019
On 19 November 2019 23:54:55 CET, Thomas Koenig <tkoenig@netcologne.de> wrote:
>Am 19.11.19 um 11:39 schrieb Bernhard Reutner-Fischer:
>> + char name[GFC_MAX_SYMBOL_LEN + 1];
>> + snprintf (name, GFC_MAX_SYMBOL_LEN, "__dummy_%d_%s", var_num++,
>> + f->sym->name);
>> +
>> + if (gfc_get_sym_tree (name, ns, &symtree, false) != 0)
>>
>> (I) you should + sizeof(__dummy__) + 10 for unsigned long %d or the
>like.
>
>GFC_MAX_SYMBOL_LEN is the maximum length of a gfortran symbol. AFAIK,
This is only true for user-provided names in the source code.
Think e.g. class names as can be seen in the dumps..
>it
>is not possible to use a longer symbol name than that, so it needs to
>be
>truncated. Uniqueness of the variable name is guaranteed by the var_num
>variable.
>
>If the user puts dummy arguments Supercalifragilisticexpialidociousa
>and
>Supercalifragilisticexpialidociousb into the argument list of a
>procedure, he will have to look at the numbers to differentiate them
>:-)
>
>> (II) s/__dummy/__intent_in/ for clarity?
>
>It's moved away a bit from INTENT(IN) now, because an argument which
>cannot be modified (even by passing to a procedure with a dummy
>argument
>with unknown intent) is now also handled.
So maybe __readonly_ , __rdonly_, __rd_or the like? dummy is really misleading a name in the dumps..
thanks,
More information about the Fortran
mailing list