https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64958

            Bug ID: 64958
           Summary: Warn if INTENT(IN) is changed by passing to no-intent
                    argument
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tkoenig at gcc dot gnu.org

Consider the following code:

module foo
  implicit none
contains
  subroutine bar(n)
    integer, intent(in) :: n
    print *,"bar before dusty", n
    call dusty(n)
    print *,"bar after dusty", n
  end subroutine bar
end module foo

program main
  use foo
  implicit none
  integer :: n
  n = 5
  call bar(n)
end program main

subroutine dusty(n)
  integer n
  n = n - 1
end

What "dusty" does is illegal, but it may not be easy for the programmer
to catch this (especially if "dusty" is in a library).

So, it would be nice if -fcheck=all would contain a check which checked
if intent(in) dummy arguments are changed by being passed to
intent(none).

Reply via email to