mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
4a94e36819
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
108 lines
2.9 KiB
Fortran
Executable File
108 lines
2.9 KiB
Fortran
Executable File
! Copyright 2016-2022 Free Software Foundation, Inc.
|
|
!
|
|
! This program is free software; you can redistribute it and/or modify
|
|
! it under the terms of the GNU General Public License as published by
|
|
! the Free Software Foundation; either version 3 of the License, or
|
|
! (at your option) any later version.
|
|
!
|
|
! This program is distributed in the hope that it will be useful,
|
|
! but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
! GNU General Public License for more details.
|
|
!
|
|
! You should have received a copy of the GNU General Public License
|
|
! along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
module mod1
|
|
integer :: var_i = 1
|
|
integer :: var_const
|
|
parameter (var_const = 20)
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE sub_nested_outer
|
|
integer :: local_int
|
|
character (len=20) :: name
|
|
|
|
name = 'sub_nested_outer_mod1'
|
|
local_int = 11
|
|
|
|
END SUBROUTINE sub_nested_outer
|
|
end module mod1
|
|
|
|
! Public sub_nested_outer
|
|
SUBROUTINE sub_nested_outer
|
|
integer :: local_int
|
|
character (len=16) :: name
|
|
|
|
name = 'sub_nested_outer external'
|
|
local_int = 11
|
|
END SUBROUTINE sub_nested_outer
|
|
|
|
! Needed indirection to call public sub_nested_outer from main
|
|
SUBROUTINE sub_nested_outer_ind
|
|
character (len=20) :: name
|
|
|
|
name = 'sub_nested_outer_ind'
|
|
CALL sub_nested_outer
|
|
END SUBROUTINE sub_nested_outer_ind
|
|
|
|
! public routine with internal subroutine
|
|
SUBROUTINE sub_with_sub_nested_outer()
|
|
integer :: local_int
|
|
character (len=16) :: name
|
|
|
|
name = 'subroutine_with_int_sub'
|
|
local_int = 1
|
|
|
|
CALL sub_nested_outer ! Should call the internal fct
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE sub_nested_outer
|
|
integer :: local_int
|
|
local_int = 11
|
|
END SUBROUTINE sub_nested_outer
|
|
|
|
END SUBROUTINE sub_with_sub_nested_outer
|
|
|
|
! Main
|
|
program TestNestedFuncs
|
|
USE mod1, sub_nested_outer_use_mod1 => sub_nested_outer
|
|
IMPLICIT NONE
|
|
|
|
TYPE :: t_State
|
|
integer :: code
|
|
END TYPE t_State
|
|
|
|
TYPE (t_State) :: v_state
|
|
integer index, local_int
|
|
|
|
index = 13
|
|
CALL sub_nested_outer ! Call internal sub_nested_outer
|
|
CALL sub_nested_outer_ind ! Call external sub_nested_outer via sub_nested_outer_ind
|
|
CALL sub_with_sub_nested_outer ! Call external routine with nested sub_nested_outer
|
|
CALL sub_nested_outer_use_mod1 ! Call sub_nested_outer imported via module
|
|
index = 11 ! BP_main
|
|
v_state%code = 27
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE sub_nested_outer
|
|
integer local_int
|
|
local_int = 19
|
|
v_state%code = index + local_int ! BP_outer
|
|
call sub_nested_inner
|
|
local_int = 22 ! BP_outer_2
|
|
RETURN
|
|
END SUBROUTINE sub_nested_outer
|
|
|
|
SUBROUTINE sub_nested_inner
|
|
integer local_int
|
|
local_int = 17
|
|
v_state%code = index + local_int ! BP_inner
|
|
RETURN
|
|
END SUBROUTINE sub_nested_inner
|
|
|
|
end program TestNestedFuncs
|