This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

[Bug fortran/32317] New: No warning on bad arguments with explicit interface


Even when an explicit interface is known, no warnings are generated when array
argument bounds (available to the compiler) don't match.  Consider the
following:

module mod
implicit none

contains

subroutine a(n,v)
integer,intent(in)::n
real,dimension(n),intent(in)::v
write(*,*)v
end subroutine a

subroutine b
real,dimension(5)::v
v=0
call a(8,v(1:4))
end subroutine b

end module mod

When b is being compiled the interface to a is known, yet no warnings are
generated of the obvious mismatch in the arguments (run.f90 just calls b):

$ gfortran -Wall -W -c --std=f2003 --pedantic -fbounds-check -O case.f90
$ gfortran -Wall -W --std=f2003 --pedantic -fbounds-check -O run.f90 case.o
$ ./a.out 
   0.000000       0.000000       0.000000       0.000000       0.000000      
0.000000     -1.1411260E-37  1.5604860E-41 -5.1655852E-38  1.5604860E-41
-6.3728095E-38  1.5604860E-41   0.000000       0.000000      5.8804453E-39  
0.000000      4.2038954E-45   0.000000      5.8809218E-39   0.000000    
-6.3728095E-38  1.5604860E-41 -8.5373851E-38  1.5604860E-41  5.8801398E-39

While this construct is probably legal as a hang-on from crappy old fortran, I
can't think of a situation when giving explicit bounds like this where simply
overrunning would be the desired effect.  A warning would be nice.

(I was going to also complain that -fbouns-check didn't come up with anything,
but then I saw PR 27989.)


-- 
           Summary: No warning on bad arguments with explicit interface
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: terry at chem dot gu dot se
  GCC host triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32317


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