mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-19 01:19:41 +08:00
Got a regression email due to merge of commit in CI config tcwg_gdb_check/master-aarch64 : https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=41439185cd0075bbb1aedf9665685dba0827cfec Begining of test "gdb.fortran/array-slices-bad.exp" was updated in above commit to start the test from running to line with tag "First Breakpoint" instead of "fortran_runto_main". Reason of the regression is shared libraries are still loaded after hitting the breakpoint as "nosharedlibrary" is already called before hitting the breakpoint. So now after this change test is updated accordingly to disable and unload shared libraries symbols after hitting the first breakpoint. Approved-By: Andrew Burgess <aburgess@redhat.com>
72 lines
2.7 KiB
Plaintext
72 lines
2.7 KiB
Plaintext
# Copyright 2020-2023 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/> .
|
|
|
|
# Test invalid element and slice array accesses.
|
|
|
|
require allow_fortran_tests
|
|
|
|
standard_testfile ".f90"
|
|
load_lib fortran.exp
|
|
|
|
if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
|
{debug f90}]} {
|
|
return -1
|
|
}
|
|
|
|
if {![runto [gdb_get_line_number "First Breakpoint"]]} {
|
|
perror "couldn't run to breakpoint First Breakpoint"
|
|
return -1
|
|
}
|
|
|
|
# Avoid shared lib symbols.
|
|
gdb_test_no_output "set auto-solib-add off"
|
|
|
|
# Avoid libc symbols, in particular the 'array' type.
|
|
gdb_test_no_output "nosharedlibrary"
|
|
|
|
gdb_breakpoint [gdb_get_line_number "Second Breakpoint"]
|
|
gdb_breakpoint [gdb_get_line_number "Final Breakpoint"]
|
|
|
|
# Access not yet allocated array.
|
|
gdb_test "print other" " = <not allocated>"
|
|
gdb_test "print other(0:4,2:3)" "array not allocated"
|
|
gdb_test "print other(1,1)" "no such vector element \\(vector not allocated\\)"
|
|
|
|
# Access not yet associated pointer.
|
|
gdb_test "print pointer2d" " = <not associated>"
|
|
gdb_test "print pointer2d(1:2,1:2)" "array not associated"
|
|
gdb_test "print pointer2d(1,1)" "no such vector element \\(vector not associated\\)"
|
|
|
|
gdb_continue_to_breakpoint "Second Breakpoint"
|
|
|
|
# Accessing just outside the arrays.
|
|
foreach name {array pointer2d other} {
|
|
gdb_test "print $name (0:,:)" "array subscript out of bounds"
|
|
gdb_test "print $name (:11,:)" "array subscript out of bounds"
|
|
gdb_test "print $name (:,0:)" "array subscript out of bounds"
|
|
gdb_test "print $name (:,:11)" "array subscript out of bounds"
|
|
|
|
gdb_test "print $name (0,:)" "no such vector element"
|
|
gdb_test "print $name (11,:)" "no such vector element"
|
|
gdb_test "print $name (:,0)" "no such vector element"
|
|
gdb_test "print $name (:,11)" "no such vector element"
|
|
}
|
|
|
|
# Stride in the wrong direction.
|
|
gdb_test "print array (1:10:-1,:)" "incorrect stride and boundary combination"
|
|
gdb_test "print array (:,1:10:-1)" "incorrect stride and boundary combination"
|
|
gdb_test "print array (10:1:1,:)" "incorrect stride and boundary combination"
|
|
gdb_test "print array (:,10:1:1)" "incorrect stride and boundary combination"
|