This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, Fortran, OOP] PR 49591/41951 (Multiple identical specific procedures in type-bound operator not detected)
- From: Janus Weil <janus at gcc dot gnu dot org>
- To: Tobias Burnus <burnus at net-b dot de>
- Cc: gfortran <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 27 Jun 2012 19:42:06 +0200
- Subject: Re: [Patch, Fortran, OOP] PR 49591/41951 (Multiple identical specific procedures in type-bound operator not detected)
- References: <CAKwh3qjsQiYM+dkp_az0=+8FdRq1M8uU76DTMtgm3JkswhBMVw@mail.gmail.com> <4FEB1762.6090707@net-b.de>
Hi,
>> here is a patch related to type-bound operators, which fixes both PR
>> 49591 and parts of PR 41951 (namely comment #12). The central piece of
>> the patch is the resolve.c part. This adds all type-bound operator
>> routines also to the non-typebound operator list (i.e. ns->op). In
>> this way, duplicates and ambiguities will be found also for cases
>> where
>> 1) operators are bound to different types or
>> 2) one operator is bound to a type and one is not.
>>
>> We have to be careful to do this only in the original namespace (where
>> the type is defined), and not in namespaces where the type is
>> use-associated (otherwise operators will be added twice). Also we can
>> not do it for private operators and deferred ones (which is the reason
>> for not throwing an error on PR 41951 comment #11 and friends).
>
>
> Can you add a note to the PR after committal?
Sure, I will leave PR 41951 open for that case (anyway I hope it's
more of a corner case).
> Regarding the test case: Please also refer to "interpreation request
> F03/0018".
Done.
> Sorry for being a bean counter, but in gfc_add_interface the lines are too
> long: Before 84 now 107 characters.
No reason to apologize, you're perfectly right. I fixed this.
> Otherwise, the patch looks OK. Thanks for going through the list of OOP
> bugs.
Thanks for the review! Committed as r189022.
Cheers,
Janus
>> The patch was regtested on x86_64-unknown-linux-gnu. Ok for trunk?
>>
>> Cheers,
>> Janus
>>
>>
>> 2012-06-27 ?Janus Weil ?<janus@gcc.gnu.org>
>>
>> ? ? ? ?PR fortran/41951
>> ? ? ? ?PR fortran/49591
>> ? ? ? ?* interface.c (check_new_interface): Rename, add 'loc' argument,
>> ? ? ? ?make non-static.
>> ? ? ? ?(gfc_add_interface): Rename 'check_new_interface'
>> ? ? ? ?* gfortran.h (gfc_check_new_interface): Add prototype.
>> ? ? ? ?* resolve.c (resolve_typebound_intrinsic_op): Add typebound
>> operator
>> ? ? ? ?targets to non-typebound operator list.
>>
>>
>> 2012-06-27 ?Janus Weil ?<janus@gcc.gnu.org>
>>
>> ? ? ? ?PR fortran/41951
>> ? ? ? ?PR fortran/49591
>> ? ? ? ?* gfortran.dg/typebound_operator_16.f03: New.
>
>
>