This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/36553] Missing interface not detected in call to same file function
- From: "pault at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Jun 2008 07:15:15 -0000
- Subject: [Bug fortran/36553] Missing interface not detected in call to same file function
- References: <bug-36553-12313@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from pault at gcc dot gnu dot org 2008-06-18 07:15 -------
(In reply to comment #6)
> However, this is not different from 4.3. Using NAG f95, I get:
> Warning: line 26: REAL value for INTEGER PARAMETER
> Error:Explicit interface required for CHECK_INTEGER4_RANK1 from ARRAY_TEST -
> argument EXPECTED (no. 1) is an assumed-shape array
duuuh!
Lahey...
Compiling program unit CHECK_INTEGER4_RANK1 at line 1:
Compiling program unit array_test at line 19:
2615-S: "SOURCE.F90", line 29: The procedure 'CHECK_INTEGER4_RANK1' shall
have an explicit interface, because it contains the assumed shape array
'EXPECTED'. The previous definition is in 'line 14'.
2615-S: "SOURCE.F90", line 29: The procedure 'CHECK_INTEGER4_RANK1' shall
have an explicit interface, because it contains the assumed shape array
'COMPUTED'. The previous definition is in 'line 14'.
Encountered 2 errors, 0 warnings, 0 informations in file SOURCE.F90.
Compiling file SOURCE.F90.
Another case where same file checking would come in handy.
Compiling with -m32 on my system reproduces the bus error. Adding the
interface, thusly:
!module CHECK_SEM
! Submitted by Walt Brainerd, The Fortran Company
! GNU Fortran 95 (GCC 4.1.0 20050322 (experimental))
! Windows XP
! Produces "a.exe has encountered a problem" window.
! Same problem if comments are removed so that
! the function is in a module.
! contains
function CHECK_INTEGER4_RANK1 (EXPECTED, COMPUTED)
integer(4), dimension(:), intent(in) :: EXPECTED, COMPUTED
logical :: CHECK_INTEGER4_RANK1
CHECK_INTEGER4_RANK1 = all(COMPUTED == EXPECTED)
end function CHECK_INTEGER4_RANK1
!end module CHECK_SEM
program array_test
!use CHECK_SEM
logical :: CHECK_INTEGER4_RANK1
integer,dimension(-1:1,-1:1) :: mis1=1
logical,dimension(-1:1,-1:1) :: ml2=.true.
interface
function CHECK_INTEGER4_RANK1 (EXPECTED, COMPUTED)
integer(4), dimension(:), intent(in) :: EXPECTED, COMPUTED
logical :: CHECK_INTEGER4_RANK1
end function CHECK_INTEGER4_RANK1
end interface
print *, CHECK_INTEGER4_RANK1 (sum(mis1,dim=1,mask=ml2), (/8,5,12/))
end program array_test
Makes it work fine for -m32 and -m64.
Dominique, if that does not do it for you, remodify the summary line and
keywords as appropriate.
Cheers
Paul
PS Jerry, sorry for fingering you falsely! :)
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pault at gcc dot gnu dot org
Keywords| |diagnostic, ice-on-invalid-
| |code
Summary|[4.4 Regression] regression |Missing interface not
|due to revision 136821 |detected in call to same
| |file function
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36553