[prev in list] [next in list] [prev in thread] [next in thread]
List: gcc-fortran
Subject: Re: [Ping, Patch 2/2, v3, Fortran, pr60322 a.o.] [OOP] Incorrect bounds on polymorphic dummy array
From: dominiq () lps ! ens ! fr (Dominique Dhumieres)
Date: 2015-03-22 13:55:40
Message-ID: 20150322135540.5E773105 () mailhost ! lps ! ens ! fr
[Download RAW message or body]
Dear Andre,
If I am not mistaken, this patch make the following test (pr57305, second attachment):
subroutine add_element_poly(a,e)
use iso_c_binding
class(*),allocatable,intent(inout),target :: a(:)
class(*),intent(in),target :: e
class(*),allocatable,target :: tmp(:)
type(c_ptr) :: dummy
interface
function memcpy(dest,src,n) bind(C,name="memcpy") result(res)
import
type(c_ptr) :: res
integer(c_intptr_t),value :: dest
integer(c_intptr_t),value :: src
integer(c_size_t),value :: n
end function
end interface
if (.not.allocated(a)) then
allocate(a(1), source=e)
else
allocate(tmp(size(a)),source=a)
deallocate(a)
allocate(a(size(tmp)+1),mold=e)
dummy = memcpy(loc(a(1)),loc(tmp),sizeof(tmp))
dummy = memcpy(loc(a(size(tmp)+1)),loc(e),sizeof(e))
end if
end subroutine
to give an ICE (a regression):
pr57305_1.f90:24:0:
dummy = memcpy(loc(a(1)),loc(tmp),sizeof(tmp))
1
internal compiler error: Segmentation fault: 11
The ICE is caused by sizeof(tmp).
TIA
Dominique
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic