On Wed, Nov 20, 2019 at 8:00 PM Bernhard Reutner-Fischer <rep.dot....@gmail.com> wrote: > > On 19 November 2019 23:54:55 CET, Thomas Koenig <tkoe...@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..
We have GFC_MAX_MANGLED_SYMBOL_LEN for that. *Insert my standard pet peeve rant that we should use heap allocated unlimited length strings for these rather than copying stack allocated strings around, or preferable a symbol table* > >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.. Well, dummy is a term with a precise definition in the Fortran standard, so in a way it's good so one realizes it has something to do with a dummy argument. But yes, it's a bit misleading because it's not the dummy argument itself but rather a dereferenced copy of it. I suggest __readonly_dereferenced_dummy_copy_yes_this_is_a_really_long_name_. :) -- Janne Blomqvist