diff options
author | Tom Tromey <tromey@redhat.com> | 2013-02-18 21:04:28 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-02-18 21:04:28 +0000 |
commit | 4c9ad8c2c0acd2e73b895bbe9f9e7d87cd9a5b7c (patch) | |
tree | 0a4979c1875272fe6e48538d5a7706464276b64e /gdb/testsuite/gdb.dwarf2 | |
parent | 4f3cee1ca11c3173ad1d4030f69b4b99a675bd26 (diff) | |
download | gdb-4c9ad8c2c0acd2e73b895bbe9f9e7d87cd9a5b7c.zip gdb-4c9ad8c2c0acd2e73b895bbe9f9e7d87cd9a5b7c.tar.gz gdb-4c9ad8c2c0acd2e73b895bbe9f9e7d87cd9a5b7c.tar.bz2 |
PR gdb/15102:
* dwarf2read.c (read_subrange_type): Use result of
'check_typedef'.
gdb/testsuite
* gdb.dwarf2/subrange.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.dwarf2')
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/subrange.exp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.dwarf2/subrange.exp b/gdb/testsuite/gdb.dwarf2/subrange.exp new file mode 100644 index 0000000..51db92e --- /dev/null +++ b/gdb/testsuite/gdb.dwarf2/subrange.exp @@ -0,0 +1,82 @@ +# Copyright 2013 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/>. +load_lib dwarf.exp + +# This test can only be run on targets which support DWARF-2 and use gas. +if {![dwarf2_support]} { + return 0 +} + +if { [skip_cplus_tests] } { continue } + +standard_testfile method-ptr.cc subrange-dw.S + +# Make some DWARF for the test. +set asm_file [standard_output_file $srcfile2] +Dwarf::assemble $asm_file { + cu 0 2 8 { + compile_unit {{language @DW_LANG_Pascal83}} { + declare_labels byte_label typedef_label array_label + + byte_label: base_type { + {name byte} + {encoding @DW_ATE_unsigned} + {byte_size 1 DW_FORM_sdata} + } + + typedef_label: typedef { + {name byte_typedef} + {type :$byte_label} + } + + array_label: array_type { + {type :$byte_label} + } { + subrange_type { + {lower_bound 0 DW_FORM_sdata} + {upper_bound 191 DW_FORM_sdata} + {byte_stride 2 DW_FORM_sdata} + {type :$typedef_label} + } + } + + typedef { + {name TByteArray} + {type :$array_label} + } + } + } +} + +if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \ + object {nodebug}] != ""} { + return -1 +} + +if {[gdb_compile $asm_file ${binfile}2.o object {nodebug}] != ""} { + return -1 +} + +if {[gdb_compile [list ${binfile}1.o ${binfile}2.o] \ + "${binfile}" executable {c++}] != ""} { + return -1 +} + +clean_restart ${testfile} + +gdb_test_no_output "set language pascal" + +gdb_test "ptype TByteArray" \ + "type = array \\\[0\\.\\.191\\\] of byte" |