1 # Copyright 2013-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 dwarf.exp 17 18 # This test can only be run on targets which support DWARF-2 and use gas. 19 require dwarf2_support 20 21 standard_testfile main.c dwz.S 22 23 # Create the DWARF. 24 set asm_file [standard_output_file $srcfile2] 25 Dwarf::assemble $asm_file { 26 declare_labels partial_label int_label int_label2 27 28 cu {} { 29 partial_label: partial_unit {} { 30 subprogram { 31 {MACRO_AT_func { main }} 32 } 33 } 34 } 35 36 cu {} { 37 compile_unit {{language @DW_LANG_C}} { 38 int_label2: base_type { 39 {name int} 40 {byte_size 4 sdata} 41 {encoding @DW_ATE_signed} 42 } 43 44 constant { 45 {name the_int} 46 {type :$int_label2} 47 {const_value 99 data1} 48 } 49 50 constant { 51 {name other_int} 52 {type :$int_label2} 53 {const_value 99 data1} 54 } 55 } 56 } 57 58 cu {} { 59 compile_unit {{language @DW_LANG_C}} { 60 imported_unit { 61 {import $partial_label ref_addr} 62 } 63 64 int_label: base_type { 65 {name int} 66 {byte_size 4 sdata} 67 {encoding @DW_ATE_signed} 68 } 69 70 constant { 71 {name the_int} 72 {type :$int_label} 73 {const_value 23 data1} 74 } 75 } 76 } 77 } 78 79 if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" {}] { 80 return -1 81 } 82 83 if ![runto_main] { 84 return -1 85 } 86 87 gdb_test "p other_int" " = 99" 88 gdb_test "p the_int" " = 23" 89