OLD | NEW |
(Empty) | |
| 1 # Copyright 2013 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 load_lib dwarf.exp |
| 16 |
| 17 # This test can only be run on targets which support DWARF-2 and use gas. |
| 18 if {![dwarf2_support]} { |
| 19 return 0 |
| 20 } |
| 21 |
| 22 if { [skip_cplus_tests] } { continue } |
| 23 |
| 24 standard_testfile method-ptr.cc subrange-dw.S |
| 25 |
| 26 # Make some DWARF for the test. |
| 27 set asm_file [standard_output_file $srcfile2] |
| 28 Dwarf::assemble $asm_file { |
| 29 cu {} { |
| 30 compile_unit {{language @DW_LANG_Pascal83}} { |
| 31 declare_labels byte_label typedef_label array_label |
| 32 |
| 33 byte_label: base_type { |
| 34 {name byte} |
| 35 {encoding @DW_ATE_unsigned} |
| 36 {byte_size 1 DW_FORM_sdata} |
| 37 } |
| 38 |
| 39 typedef_label: typedef { |
| 40 {name byte_typedef} |
| 41 {type :$byte_label} |
| 42 } |
| 43 |
| 44 array_label: array_type { |
| 45 {type :$byte_label} |
| 46 } { |
| 47 subrange_type { |
| 48 {lower_bound 0 DW_FORM_sdata} |
| 49 {upper_bound 191 DW_FORM_sdata} |
| 50 {byte_stride 2 DW_FORM_sdata} |
| 51 {type :$typedef_label} |
| 52 } |
| 53 } |
| 54 |
| 55 typedef { |
| 56 {name TByteArray} |
| 57 {type :$array_label} |
| 58 } |
| 59 } |
| 60 } |
| 61 } |
| 62 |
| 63 if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \ |
| 64 object {nodebug}] != ""} { |
| 65 return -1 |
| 66 } |
| 67 |
| 68 if {[gdb_compile $asm_file ${binfile}2.o object {nodebug}] != ""} { |
| 69 return -1 |
| 70 } |
| 71 |
| 72 if {[gdb_compile [list ${binfile}1.o ${binfile}2.o] \ |
| 73 "${binfile}" executable {c++}] != ""} { |
| 74 return -1 |
| 75 } |
| 76 |
| 77 clean_restart ${testfile} |
| 78 |
| 79 gdb_test_no_output "set language pascal" |
| 80 |
| 81 gdb_test "ptype TByteArray" \ |
| 82 "type = array \\\[0\\.\\.191\\\] of byte" |
OLD | NEW |