1 # Copyright
2014-2022 Free Software Foundation
, Inc.
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.
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.
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
/>.
17 # This test can only be run
on targets which support DWARF
-2 and use gas.
18 if {![dwarf2_support
]} {
22 standard_testfile main.c
-dw.S
24 # Make some DWARF
for the test.
25 set asm_file
[standard_output_file $srcfile2
]
26 Dwarf
::assemble $asm_file
{
29 {DW_AT_language @DW_LANG_Ada95
}
33 declare_labels integer_label array_elt_label array_label \
34 big_array_label struct_label
36 integer_label
: DW_TAG_base_type
{
37 {DW_AT_byte_size
4 DW_FORM_sdata
}
38 {DW_AT_encoding @DW_ATE_signed
}
42 array_elt_label
: DW_TAG_subrange_type
{
43 {DW_AT_lower_bound
0xe0 DW_FORM_data1
}
44 {DW_AT_upper_bound
0x1f DW_FORM_data1
}
45 {DW_AT_name pck__item
}
46 {DW_AT_type
:$integer_label
}
50 {DW_AT_name pck__table
}
51 {DW_AT_type
:$array_label
}
54 array_label
: DW_TAG_array_type
{
55 {DW_AT_name pck__table
}
56 {DW_AT_bit_stride
6 DW_FORM_data1
}
57 {DW_AT_type
:$array_elt_label
}
59 DW_TAG_subrange_type
{
60 {DW_AT_type
:$integer_label
}
61 {DW_AT_lower_bound
0 DW_FORM_data1
}
62 {DW_AT_upper_bound
4 DW_FORM_data1
}
67 {DW_AT_name pck__big_table
}
68 {DW_AT_type
:$big_array_label
}
71 big_array_label
: DW_TAG_array_type
{
72 {DW_AT_name pck__big_table
}
73 {DW_AT_byte_stride
1 DW_FORM_data1
}
74 {DW_AT_type
:$array_elt_label
}
76 DW_TAG_subrange_type
{
77 {DW_AT_type
:$integer_label
}
78 {DW_AT_lower_bound
0 DW_FORM_data1
}
79 {DW_AT_upper_bound
4 DW_FORM_data1
}
83 struct_label
: DW_TAG_structure_type
{
85 {byte_size
16 DW_FORM_sdata
}
89 {type
:$integer_label
}
90 {data_member_location
0 DW_FORM_sdata
}
95 {data_member_location
4 DW_FORM_sdata
}
101 {external
1 DW_FORM_flag
}
108 {type
:$struct_label
}
114 if { [prepare_for_testing
"failed to prepare" ${testfile} \
115 [list $srcfile $asm_file
] {nodebug
}] } {
119 gdb_test_no_output
"set language ada"
121 gdb_test
"ptype pck.table" \
122 "type = array \\(0 \\.\\. 4\\) of pck\\.item <packed: 6-bit elements>"
124 gdb_test
"ptype pck.big_table" \
125 "type = array \\(0 \\.\\. 4\\) of pck\\.item <packed: 8-bit elements>"
127 gdb_test
"print the_struct" \
128 "\\(intfield => 1, arrayfield => \\(0 => <optimized out>\\)\\)"