This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, fortran] PR59198 - [4.8/4.9/5 Regression] ICE on cyclically dependent polymorphic types


Dear Tobias,

As far as I can see, without the patch, gfc_get _derived_type goes
into a continuous loop trying to build the abstract type. Why this is
not the case with an additional non-procedure pointer component, I do
not know. I suspect that there is a corner case out there that will
challenge this patch but I was unable to generate it. I decided
therefore to commit, with an additional condition in the loop to
prevent repeated attempts to build the component field.

Committed to trunk as revision 221474.

4.8 and 4.9 to follow.

Cheers

Paul


On 16 March 2015 at 09:39, Paul Richard Thomas
<paul.richard.thomas@gmail.com> wrote:
> Dear Tobias,
>
> I think that I have a partial understanding now and will attempt to
> verify it tonight. Certainly to not build the components, when a
> derived type is flagged to have proc_pointer components cannot be
> right just because there can be other components as in the original
> testcase. This led to the lack of DECL_SIZE information for the field
> 'term' and the subsequent ICE. The key to understanding is the problem
> with typebound_operator_9.f03, when the check for proc_pointer
> components is omitted completely. This implies that there is something
> missing from the function (sorry, I forget its name) that build
> proc_pointer fields. I will check that idea - enlightenment might lead
> to a different patch.
>
> Thanks for the review.
>
> Paul
>
> On 16 March 2015 at 09:07, Tobias Burnus
> <tobias.burnus@physik.fu-berlin.de> wrote:
>> Dear Paul,
>>
>> Paul Richard Thomas wrote:
>>> The ChangeLog says it all. If the check is not done for components
>>> that are not procedure pointers,
>>> typebound_operator_9.f03 breaks. I am not entirely sure why this is
>>> the case but the fix works fine.
>>>
>>> Bootstraps and regtests on FC21/x86_64 - OK for 4.8, 4.9 and 5.0?
>>
>> OK. I have to admit that I also do not really understand why that's
>> required.
>>
>> Tobias
>
>
>
> --
> Outside of a dog, a book is a man's best friend. Inside of a dog it's
> too dark to read.
>
> Groucho Marx



-- 
Outside of a dog, a book is a man's best friend. Inside of a dog it's
too dark to read.

Groucho Marx


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]