blob: 6f196b71dc892b53aaf11f4c504942e16e72b6e4 [file] [log] [blame]
# Copyright 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/>.
# The program associated to this test case uncovered a bug in GDB (PR 29374)
# where a typedef type was used before it was resolved.
if { [istarget "x86_64-*-linux*"] && [is_lp64_target] } {
set suffix amd64
} elseif { [istarget "aarch64-*-linux*"] } {
set suffix aarch64
} else {
unsupported "unsupported architecture"
return
}
standard_testfile -$suffix.S
if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {c++}] != ""} {
return
}
clean_restart $binfile
if {![runto_main]} {
return
}
gdb_test "catch throw" "Catchpoint $::decimal \\(throw\\)"
gdb_test "continue" "Catchpoint $::decimal \\(exception thrown\\).*"
# Without the corresponding fix, GDB would hit an internal error before
# printing the frame for main.
gdb_test "backtrace" " $::hex in func \\(t=t@entry=@$::hex: 1234\\).* $::hex in main .*"