1 # Copyright 2015-2024 Free Software Foundation, Inc. 2 3 # This program is free software; you can redistribute it and/or modify 4 # it under the terms of the GNU General Public License as published by 5 # the Free Software Foundation; either version 3 of the License, or 6 # (at your option) any later version. 7 # 8 # This program is distributed in the hope that it will be useful, 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # GNU General Public License for more details. 12 # 13 # You should have received a copy of the GNU General Public License 14 # along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 load_lib compile-support.exp 17 18 standard_testfile 19 20 require is_c_compiler_gcc 21 22 set options {} 23 if [test_compiler_info gcc*] { 24 lappend options additional_flags=-g3 25 lappend options additional_flags=-std=gnu++11 26 lappend options c++ 27 } 28 29 set srcfilesoptions [list ${srcfile} ${options}] 30 31 if { [eval build_executable_from_specs ${testfile}.exp $testfile {$options} ${srcfilesoptions}] } { 32 return -1 33 } 34 35 clean_restart ${testfile} 36 37 if ![runto_main] { 38 return -1 39 } 40 41 if {[skip_compile_feature_untested]} { 42 return -1 43 } 44 45 gdb_test_no_output "set language c++" \ 46 "Set language to C++" 47 48 gdb_test "compile print varint" " = 10" 49 gdb_test "compile print vararray" " = \\{1, 2, 3, 4, 5\\}" 50 51 setup_kfail compile/23586 *-*-* 52 gdb_test "compile print main" " = \\{int \\(void\\)\\} 0x\[0-9a-f\]+" 53 54 setup_kfail compile/23587 *-*-* 55 set test "compile print *vararray@3" 56 gdb_test_multiple $test $test { 57 -re " = \\{1, 2, 3\\}\r\n$gdb_prompt $" { 58 pass $test 59 } 60 -re "warning: .*All references to this method will be undefined\.\r\n" { 61 exp_continue 62 } 63 } 64 65 setup_kfail compile/23587 *-*-* 66 set test "compile print *vararrayp@3" 67 gdb_test_multiple $test $test { 68 -re " = \\{1, 2, 3\\}\r\n$gdb_prompt $" { 69 pass $test 70 } 71 -re "warning: .*All references to this method will be undefined\.\r\n" { 72 exp_continue 73 } 74 } 75 76 gdb_test "compile print/x 256" " = 0x100" 77 gdb_test {print $} " = 256" 78 79 gdb_test "compile print varobject" { = {field = 1}} 80