Re: Syntax check for IMPLICIT statement
- From: Herman D. Knoble <SkipKnobleLESS@xxxxxxxxxxxxxxx>
- Date: Mon, 28 Apr 2008 07:57:06 -0400
On Sun, 27 Apr 2008 21:15:11 -0600, "James Van Buskirk" <not_valid@xxxxxxxxxxx> wrote:
-|"James Van Buskirk" <not_valid@xxxxxxxxxxx> wrote in message
-|news:wpmdnYLdJ7wLl4jVnZ2dnUVZ_jednZ2d@xxxxxxxxxxxxxx
-|
-|> As you can see, this program is capable of reproducing the ifort
-|> error but I haven't been able to make a small program that
-|> reproduces the gfortran ICE.
-|
-|I still haven't been able to distill the above-mentioned ICE, but
-|here's a pretty small one:
-|
-|C:\gfortran\clf\startest>type bug1.f90
-|module bug1
-| use ISO_C_BINDING
-| implicit none
-| contains
-| subroutine sub1(x)
-| type(C_PTR) x
-| write(*,'(z16.16)') transfer(x,0_C_INTPTR_T)
-| end subroutine sub1
-| subroutine sub2(x)
-| type(C_FUNPTR) x
-| write(*,'(z16.16)') transfer(x,0_C_INTPTR_T)
-| end subroutine sub2
-|end module bug1
-|
-|program test
-| use bug1
-| implicit none
-| call sub1(transfer(7_C_INTPTR_T,C_NULL_PTR))
-| call sub2(transfer(7_C_INTPTR_T,C_NULL_FUNPTR))
-|end program test
This one fails using g95
Skip
-|
-|C:\gfortran\clf\startest>gfortran bug1.f90 -obug1
-|bug1.f90:7: internal compiler error: Segmentation fault
-|Please submit a full bug report,
-|with preprocessed source if appropriate.
-|See <http://gcc.gnu.org/bugs.html> for instructions.
-|
-|What seems to be getting gfortran down is the TRANSFERs in
-|the actual arguments. Switching to C_LOC for the invocation
-|of sub1 fixes that call up, but for sub2 you have to go all
-|the way to a temporary variable to prevent ICE:
-|
-|C:\gfortran\clf\startest>type bug1a.f90
-|module bug1
-| use ISO_C_BINDING
-| implicit none
-| contains
-| subroutine sub1(x)
-| type(C_PTR) x
-| write(*,'(z16.16)') transfer(x,0_C_INTPTR_T)
-| end subroutine sub1
-| subroutine sub2(x)
-| type(C_FUNPTR) x
-| write(*,'(z16.16)') transfer(x,0_C_INTPTR_T)
-| end subroutine sub2
-| subroutine sub3() bind(C)
-| end subroutine sub3
-|end module bug1
-|
-|program test
-| use bug1
-| implicit none
-| integer, target :: i
-| type(C_FUNPTR) p
-|
-| p = C_FUNLOC(sub3)
-| call sub1(C_LOC(i))
-| call sub2(C_FUNLOC(sub3)) ! Causes ICE
-| call sub2(p) ! No ICE
-|end program test
-|
-|C:\gfortran\clf\startest>gfortran bug1a.f90 -obug1a
-|bug1a.f90: In function 'test':
-|bug1a.f90:25: internal compiler error: in expand_expr_addr_expr_1, at
-|expr.c:680
-|3
-|Please submit a full bug report,
-|with preprocessed source if appropriate.
-|See <http://gcc.gnu.org/bugs.html> for instructions.
.
- References:
- Syntax check for IMPLICIT statement
- From: James Van Buskirk
- Re: Syntax check for IMPLICIT statement
- From: James Van Buskirk
- Syntax check for IMPLICIT statement
- Prev by Date: Re: Syntax check for IMPLICIT statement
- Next by Date: Warning: The structure contains misaligned fields
- Previous by thread: Re: Syntax check for IMPLICIT statement
- Next by thread: Re: Syntax check for IMPLICIT statement
- Index(es):
Relevant Pages
|