1# Copyright 2013-2020 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
30    cu {} {
31	partial_label: partial_unit {} {
32	    subprogram {
33		{MACRO_AT_func { main }}
34	    }
35	}
36    }
37
38    cu {} {
39	compile_unit {{language @DW_LANG_C}} {
40	    int_label2: base_type {
41		{name int}
42		{byte_size 4 sdata}
43		{encoding @DW_ATE_signed}
44	    }
45
46	    constant {
47		{name the_int}
48		{type :$int_label2}
49		{const_value 99 data1}
50	    }
51
52	    constant {
53		{name other_int}
54		{type :$int_label2}
55		{const_value 99 data1}
56	    }
57	}
58    }
59
60    cu {} {
61	compile_unit {{language @DW_LANG_C}} {
62	    imported_unit {
63		{import $partial_label ref_addr}
64	    }
65
66	    int_label: base_type {
67		{name int}
68		{byte_size 4 sdata}
69		{encoding @DW_ATE_signed}
70	    }
71
72	    constant {
73		{name the_int}
74		{type :$int_label}
75		{const_value 23 data1}
76	    }
77	}
78    }
79}
80
81if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" {}] {
82    return -1
83}
84
85if ![runto_main] {
86    return -1
87}
88
89gdb_test "p other_int" " = 99"
90gdb_test "p the_int" " = 23"
91