# Copyright (C) 2023-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 . # Test a certain 'finish' in Rust. load_lib rust-support.exp require allow_rust_tests require {can_compile rust} standard_testfile .rs if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug rust}]} { return -1 } set line [gdb_get_line_number "BREAK"] if {![runto ${srcfile}:$line]} { untested "could not run to breakpoint" return -1 } # This 'finish' used to crash. See PR rust/30090. Also, this does # not currently print the correct value, because rustc does not use # the standard ABI here. This is being tracked here: # https://github.com/rust-lang/rust/issues/85641 setup_xfail *-*-* gdb_test "finish" [string_to_regexp " = finish::MyResult::Some(97)"] gdb_test "next" gdb_test "print dei" [string_to_regexp " = finish::MyResult::Some(97)"]