[Patch, Fortran, F03] PR 77501: ICE in gfc_match_generic, at fortran/decl.c:9429
Janus Weil
janus@gcc.gnu.org
Sat Nov 12 20:21:00 GMT 2016
2016-11-12 20:15 GMT+01:00 Mikael Morin <morin-mikael@orange.fr>:
>>>> [Btw, speaking of gfc_get_tbp_symtree: Can anyone tell me by chance
>>>> why it is necessary to nullify 'result->n.tb' on a newly-created
>>>> symtree?]
>>>
>>>
>>> Removing the corresponding line does not do any harm to the testsuite,
>>> as I just verified:
>>>
>>> Index: gcc/fortran/class.c
>>> ===================================================================
>>> --- gcc/fortran/class.c (Revision 242066)
>>> +++ gcc/fortran/class.c (Arbeitskopie)
>>> @@ -2970,7 +2970,6 @@ gfc_get_tbp_symtree (gfc_symtree **root, const cha
>>> {
>>> result = gfc_new_symtree (root, name);
>>> gcc_assert (result);
>>> - result->n.tb = NULL;
>>> }
>>>
>>> return result;
>>>
>>
>> I think the assert can be removed as well. gfc_new_symtree
>> is defined by XCNEW, which is defined in terms of xcalloc,
>> which is defined in libiberty/xmalloc.c in terms of calloc.
>> calloc zeros allocated memory. xcalloc also checks for a
>> valid allocation, so gcc_assert is redundant.
>>
>>
> And you can remove «tbp» from the function name, as there is nothing related
> to typebound procedures any more.
True. Probably one should also move it to symbol.c.
However, one can wonder whether renaming to gfc_get_symtree would not
make the name too similar to gfc_get_sym_tree, which also lives in
symbol.c ...?
Cheers,
Janus
More information about the Fortran
mailing list