binutils-gdb/gdb/testsuite/gdb.fortran/common-block.exp
Andrew Burgess 1d506c26d9 Update copyright year range in header of all files managed by GDB
This commit is the result of the following actions:

  - Running gdb/copyright.py to update all of the copyright headers to
    include 2024,

  - Manually updating a few files the copyright.py script told me to
    update, these files had copyright headers embedded within the
    file,

  - Regenerating gdbsupport/Makefile.in to refresh it's copyright
    date,

  - Using grep to find other files that still mentioned 2023.  If
    these files were updated last year from 2022 to 2023 then I've
    updated them this year to 2024.

I'm sure I've probably missed some dates.  Feel free to fix them up as
you spot them.
2024-01-12 15:49:57 +00:00

129 lines
5.0 KiB
Plaintext

# Copyright 2008-2024 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/>.
# This file was written by Jan Kratochvil <jan.kratochvil@redhat.com>.
require allow_fortran_tests
standard_testfile .f90
load_lib "fortran.exp"
if {[prepare_for_testing "failed to prepare" ${testfile} \
$srcfile {debug f90 quiet}]} {
return -1
}
if {![fortran_runto_main]} {
return
}
gdb_breakpoint [gdb_get_line_number "stop-here-out"]
gdb_continue_to_breakpoint "stop-here-out"
# Common block naming with source name /foo/:
# .symtab DW_TAG_common_block's DW_AT_name
# Intel Fortran foo_ foo_
# GNU Fortran foo_ foo
#set suffix "_"
set suffix ""
# Depending on the compiler being used, the type names can be printed differently.
set int4 [fortran_int4]
set real4 [fortran_real4]
set real8 [fortran_real8]
gdb_test "whatis foo$suffix" "No symbol \"foo$suffix\" in current context."
gdb_test "ptype foo$suffix" "No symbol \"foo$suffix\" in current context."
gdb_test "p foo$suffix" "No symbol \"foo$suffix\" in current context."
gdb_test "whatis fo_o$suffix" "No symbol \"fo_o$suffix\" in current context."
gdb_test "ptype fo_o$suffix" "No symbol \"fo_o$suffix\" in current context."
gdb_test "p fo_o$suffix" "No symbol \"fo_o$suffix\" in current context."
gdb_test_multiple "info locals" "info locals out" {
# gfortran
-re -wrap "ix_x = 11\r\niy_y = 22\r\niz_z = 33\r\nix = 1\r\niy = 2\r\niz = 3" {
pass $gdb_test_name
}
# ifx/ifort/flang
-re -wrap "ix = 1\r\niy = 2\r\niz = 3\r\nix_x = 11\r\niy_y = 22\r\niz_z = 33" {
pass $gdb_test_name
}
}
gdb_test_multiple "info common" "info common out" {
# gfortran
-re -wrap "Contents of F77 COMMON block 'fo_o':\r\nix_x = 11\r\niy_y = 22\r\niz_z = 33\r\n\r\nContents of F77 COMMON block 'foo':\r\nix = 1\r\niy = 2\r\niz = 3" {
pass $gdb_test_name
}
# ifx/ifort/flang
-re -wrap "Contents of F77 COMMON block 'foo_?':\r\nix = 1\r\niy = 2\r\niz = 3\r\n\r\nContents of F77 COMMON block 'fo_o_?':\r\nix_x = 11\r\niy_y = 22\r\niz_z = 33" {
pass $gdb_test_name
}
}
gdb_test "ptype ix" "type = $int4" "ptype ix out"
gdb_test "ptype iy" "type = $real4" "ptype iy out"
gdb_test "ptype iz" "type = $real8" "ptype iz out"
gdb_test "ptype ix_x" "type = $int4" "ptype ix_x out"
gdb_test "ptype iy_y" "type = $real4" "ptype iy_y out"
gdb_test "ptype iz_z" "type = $real8" "ptype iz_z out"
gdb_test "p ix" " = 1 *" "p ix out"
gdb_test "p iy" " = 2 *" "p iy out"
gdb_test "p iz" " = 3 *" "p iz out"
gdb_test "p ix_x" " = 11 *" "p ix_x out"
gdb_test "p iy_y" " = 22 *" "p iy_y out"
gdb_test "p iz_z" " = 33 *" "p iz_z out"
gdb_breakpoint [gdb_get_line_number "stop-here-in"]
gdb_continue_to_breakpoint "stop-here-in"
gdb_test "whatis foo$suffix" "No symbol \"foo$suffix\" in current context." "whatis foo$suffix in"
gdb_test "ptype foo$suffix" "No symbol \"foo$suffix\" in current context." "ptype foo$suffix in"
gdb_test "p foo$suffix" "No symbol \"foo$suffix\" in current context." "p foo$suffix in"
gdb_test "whatis fo_o$suffix" "No symbol \"fo_o$suffix\" in current context." "whatis fo_o$suffix in"
gdb_test "ptype fo_o$suffix" "No symbol \"fo_o$suffix\" in current context." "ptype fo_o$suffix in"
gdb_test "p fo_o$suffix" "No symbol \"fo_o$suffix\" in current context." "p fo_o$suffix in"
gdb_test_multiple "info locals" "info locals in" {
# gfortran
-re -wrap "ix = 11\r\niy2 = 22\r\niz = 33\r\nix_x = 1\r\niy_y = 2\r\niz_z2 = 3\r\niy = 5\r\niz_z = 55" {
pass $gdb_test_name
}
# ifx
-re -wrap "ix = 11\r\niy2 = 22\r\niz = 33\r\nix_x = 1\r\niy_y = 2\r\niz_z2 = 3\r\niz_z = 55\r\niy = 5" {
pass $gdb_test_name
}
# ifort
-re -wrap "iz_z = 55\r\niy = 5\r\nix = 11\r\niy2 = 22\r\niz = 33\r\nix_x = 1\r\niy_y = 2\r\niz_z2 = 3" {
pass $gdb_test_name
}
}
gdb_test "info common" "Contents of F77 COMMON block 'fo_o':\r\nix = 11\r\niy2 = 22\r\niz = 33\r\n\r\nContents of F77 COMMON block 'foo':\r\nix_x = 1\r\niy_y = 2\r\niz_z2 = 3" "info common in"
gdb_test "ptype ix" "type = $int4" "ptype ix in"
gdb_test "ptype iy2" "type = $real4" "ptype iy2 in"
gdb_test "ptype iz" "type = $real8" "ptype iz in"
gdb_test "ptype ix_x" "type = $int4" "ptype ix_x in"
gdb_test "ptype iy_y" "type = $real4" "ptype iy_y in"
gdb_test "ptype iz_z2" "type = $real8" "ptype iz_z2 in"
gdb_test "p ix" " = 11 *" "p ix in"
gdb_test "p iy2" " = 22 *" "p iy2 in"
gdb_test "p iz" " = 33 *" "p iz in"
gdb_test "p ix_x" " = 1 *" "p ix_x in"
gdb_test "p iy_y" " = 2 *" "p iy_y in"
gdb_test "p iz_z2" " = 3 *" "p iz_z2 in"