This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, fortran} pr68196 [4.9/5 Regression] ICE on function result with procedure pointer component
- From: Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- To: Steve Kargl <sgk at troutmask dot apl dot washington dot edu>
- Cc: "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 18 Dec 2015 10:28:51 +0100
- Subject: Re: [Patch, fortran} pr68196 [4.9/5 Regression] ICE on function result with procedure pointer component
- Authentication-results: sourceware.org; auth=none
- References: <CAGkQGiJwN-N90HbVYo8oz1OVJ7oq=+UUBM72Fgvf4bWQJaBgEQ at mail dot gmail dot com> <20151218035631 dot GA3260 at troutmask dot apl dot washington dot edu>
Sorry, yes; proc_ptr_48.f90
! { dg-do run }
!
! Checks the fix for PR68196, comment #8
!
! Contributed by Damian Rouson <damian@sourceryinstitute.org>
!
type Bug ! Failed at trans--array.c:8269
real, allocatable :: scalar
procedure(boogInterface),pointer :: boog
end type
interface
function boogInterface(A) result(C)
import Bug
class(Bug) A
type(Bug) C
end function
end interface
real, parameter :: ninetynine = 99.0
real, parameter :: onenineeight = 198.0
type(bug) :: actual, res
actual%scalar = ninetynine
actual%boog => boogImplementation
res = actual%boog () ! Failed on bug in expr.c:3933
if (res%scalar .ne. onenineeight) call abort
! Make sure that the procedure pointer is assigned correctly
if (actual%scalar .ne. ninetynine) call abort
actual = res%boog ()
if (actual%scalar .ne. onenineeight) call abort
! Deallocate so that we can use valgrind to check for memory leaks
deallocate (res%scalar, actual%scalar)
contains
function boogImplementation(A) result(C) ! Failed at trans--array.c:8078
class(Bug) A
type(Bug) C
select type (A)
type is (bug)
C = A
C%scalar = onenineeight
class default
call abort
end select
end function
end
On 18 December 2015 at 04:56, Steve Kargl
<sgk@troutmask.apl.washington.edu> wrote:
> On Thu, Dec 17, 2015 at 11:12:17PM +0100, Paul Richard Thomas wrote:
>>
>> Some problems have come up that are not dissimilar to the original
>> bug, involving infinite recursion with procedure components, with the
>> same type as the containing type. The fix is verging on the trivial.
>> However, given that I found two further bugs in fixing the one
>> reported, I worry that there are more lurking nearby.
>>
>> Bootstraps and regtests on x86_64 - OK for trunk and, in a couple of
>> weeks 5 and 4.9 branches?
>>
>
> OK.
>
> Do you have a testcase that should also be committed?
>
> --
> Steve
--
Outside of a dog, a book is a man's best friend. Inside of a dog it's
too dark to read.
Groucho Marx