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