Home | History | Annotate | Line # | Download | only in gdb.compile
      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