You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
338 lines
13 KiB
338 lines
13 KiB
#! /bin/sh
|
|
# Copyright (C) 2019 Red Hat, Inc.
|
|
# This file is part of elfutils.
|
|
#
|
|
# This file 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.
|
|
#
|
|
# elfutils 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/>.
|
|
|
|
. $srcdir/test-subr.sh
|
|
|
|
# = rng.ads =
|
|
# package Rng is
|
|
#
|
|
# type Rec (I : Integer) is record
|
|
# case I is
|
|
# when Positive =>
|
|
# case I is
|
|
# when 1..15 | 17 | 23 =>
|
|
# null;
|
|
# when others =>
|
|
# J : Integer;
|
|
# end case;
|
|
# when -52..-1 =>
|
|
# Q: Integer;
|
|
# when -64 =>
|
|
# R: Boolean;
|
|
# when others =>
|
|
# null;
|
|
# end case;
|
|
# end record;
|
|
#
|
|
# R : Rec (1);
|
|
#
|
|
# end Rng;
|
|
|
|
# = urng.ads =
|
|
#
|
|
# package Urng is
|
|
#
|
|
# type Unsigned is mod 65536;
|
|
# type Rec (U : Unsigned) is record
|
|
# case U is
|
|
# when 17 | 23 | 32768..65535 =>
|
|
# null;
|
|
# when 256 =>
|
|
# B: Boolean;
|
|
# when others =>
|
|
# I : Integer;
|
|
# end case;
|
|
# end record;
|
|
#
|
|
# R : Rec (1);
|
|
#
|
|
# end Urng;
|
|
|
|
# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf rng.ads
|
|
# eu-strip -g -f rng.debug rng.o
|
|
# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf urng.ads
|
|
# eu-strip -g -f urng.debug urng.o
|
|
|
|
testfiles testfile-rng.debug testfile-urng.debug
|
|
|
|
testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-rng.debug testfile-urng.debug <<EOF
|
|
|
|
testfile-rng.debug:
|
|
|
|
|
|
DWARF section [ 5] '.debug_info' at offset 0x40:
|
|
[Offset]
|
|
Compilation unit at offset 0:
|
|
Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
|
|
[ b] compile_unit abbrev: 1
|
|
producer (strp) "GNU Ada 9.1.1 20190503 (Red Hat 9.1.1-1) -g -fgnat-encodings=minimal -gstrict-dwarf -mtune=generic -march=x86-64"
|
|
language (data1) Ada95 (13)
|
|
name (strp) "rng.ads"
|
|
comp_dir (strp) "/home/mark"
|
|
low_pc (addr) 000000000000000000
|
|
high_pc (data8) 2016 (0x00000000000007e0)
|
|
stmt_list (sec_offset) 0
|
|
[ 2d] structure_type abbrev: 2
|
|
name (strp) "rng__rec"
|
|
byte_size (exprloc)
|
|
[ 0] push_object_address
|
|
[ 1] deref_size 4
|
|
[ 3] call4 [ c6]
|
|
[ 8] plus_uconst 7
|
|
[10] const1s -4
|
|
[12] and
|
|
decl_file (data1) rng.ads (1)
|
|
decl_line (data1) 3
|
|
decl_column (data1) 9
|
|
sibling (ref4) [ ab]
|
|
[ 47] member abbrev: 3
|
|
name (string) "i"
|
|
decl_file (data1) rng.ads (1)
|
|
decl_line (data1) 3
|
|
decl_column (data1) 14
|
|
type (ref4) [ fe]
|
|
data_member_location (data1) 0
|
|
[ 52] variant_part abbrev: 4
|
|
discr (ref4) [ 47]
|
|
[ 57] variant abbrev: 5
|
|
discr_list (block1) range 1..2147483647
|
|
sibling (ref4) [ 81]
|
|
[ 64] variant_part abbrev: 4
|
|
discr (ref4) [ 47]
|
|
[ 69] variant abbrev: 6
|
|
discr_list (block1) range 1..15, label 17, label 23
|
|
[ 72] variant abbrev: 7
|
|
[ 73] member abbrev: 3
|
|
name (string) "j"
|
|
decl_file (data1) rng.ads (1)
|
|
decl_line (data1) 10
|
|
decl_column (data1) 19
|
|
type (ref4) [ fe]
|
|
data_member_location (data1) 4
|
|
[ 81] variant abbrev: 5
|
|
discr_list (block1) range -52..-1
|
|
sibling (ref4) [ 96]
|
|
[ 8a] member abbrev: 3
|
|
name (string) "q"
|
|
decl_file (data1) rng.ads (1)
|
|
decl_line (data1) 13
|
|
decl_column (data1) 13
|
|
type (ref4) [ fe]
|
|
data_member_location (data1) 4
|
|
[ 96] variant abbrev: 8
|
|
discr_value (sdata) -64
|
|
sibling (ref4) [ a8]
|
|
[ 9c] member abbrev: 3
|
|
name (string) "r"
|
|
decl_file (data1) rng.ads (1)
|
|
decl_line (data1) 15
|
|
decl_column (data1) 13
|
|
type (ref4) [ 105]
|
|
data_member_location (data1) 4
|
|
[ a8] variant abbrev: 9
|
|
[ ab] dwarf_procedure abbrev: 10
|
|
location (exprloc)
|
|
[ 0] dup
|
|
[ 1] lit0
|
|
[ 2] gt
|
|
[ 3] over
|
|
[ 4] lit15
|
|
[ 5] le
|
|
[ 6] and
|
|
[ 7] over
|
|
[ 8] lit17
|
|
[ 9] eq
|
|
[10] or
|
|
[11] over
|
|
[12] lit23
|
|
[13] eq
|
|
[14] or
|
|
[15] bra 22
|
|
[18] lit4
|
|
[19] skip 23
|
|
[22] lit0
|
|
[23] swap
|
|
[24] drop
|
|
[ c6] dwarf_procedure abbrev: 10
|
|
location (exprloc)
|
|
[ 0] dup
|
|
[ 1] lit0
|
|
[ 2] gt
|
|
[ 3] bra 36
|
|
[ 6] dup
|
|
[ 7] const1s -52
|
|
[ 9] lt
|
|
[10] over
|
|
[11] lit0
|
|
[12] ge
|
|
[13] or
|
|
[14] bra 21
|
|
[17] lit4
|
|
[18] skip 33
|
|
[21] dup
|
|
[22] const1s -64
|
|
[24] eq
|
|
[25] bra 32
|
|
[28] lit0
|
|
[29] skip 33
|
|
[32] lit4
|
|
[33] skip 52
|
|
[36] dup
|
|
[37] call4 [ ab]
|
|
[42] plus_uconst 3
|
|
[44] const1s -4
|
|
[46] and
|
|
[47] plus_uconst 3
|
|
[49] const1s -4
|
|
[51] and
|
|
[52] swap
|
|
[53] drop
|
|
[ fe] base_type abbrev: 11
|
|
byte_size (data1) 4
|
|
encoding (data1) signed (5)
|
|
name (strp) "integer"
|
|
artificial (flag_present) yes
|
|
[ 105] base_type abbrev: 12
|
|
byte_size (data1) 1
|
|
encoding (data1) boolean (2)
|
|
name (strp) "boolean"
|
|
[ 10c] variable abbrev: 13
|
|
name (strp) "rng__r"
|
|
decl_file (data1) rng.ads (1)
|
|
decl_line (data1) 21
|
|
decl_column (data1) 4
|
|
type (ref4) [ 2d]
|
|
external (flag_present) yes
|
|
location (exprloc)
|
|
[ 0] addr 0x7e4
|
|
[ 122] subprogram abbrev: 14
|
|
external (flag_present) yes
|
|
name (strp) "rng___elabs"
|
|
artificial (flag_present) yes
|
|
low_pc (addr) 0x0000000000000734
|
|
high_pc (data8) 22 (0x000000000000074a)
|
|
frame_base (exprloc)
|
|
[ 0] call_frame_cfa
|
|
|
|
testfile-urng.debug:
|
|
|
|
|
|
DWARF section [ 5] '.debug_info' at offset 0x40:
|
|
[Offset]
|
|
Compilation unit at offset 0:
|
|
Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
|
|
[ b] compile_unit abbrev: 1
|
|
producer (strp) "GNU Ada 9.1.1 20190503 (Red Hat 9.1.1-1) -g -fgnat-encodings=minimal -gstrict-dwarf -mtune=generic -march=x86-64"
|
|
language (data1) Ada95 (13)
|
|
name (strp) "urng.ads"
|
|
comp_dir (strp) "/home/mark"
|
|
low_pc (addr) 000000000000000000
|
|
high_pc (data8) 977 (0x00000000000003d1)
|
|
stmt_list (sec_offset) 0
|
|
[ 2d] base_type abbrev: 2
|
|
byte_size (data1) 2
|
|
encoding (data1) unsigned (7)
|
|
name (strp) "urng__unsigned"
|
|
[ 34] structure_type abbrev: 3
|
|
name (strp) "urng__rec"
|
|
byte_size (exprloc)
|
|
[ 0] push_object_address
|
|
[ 1] deref_size 2
|
|
[ 3] call4 [ 8d]
|
|
[ 8] plus_uconst 7
|
|
[10] const1s -4
|
|
[12] and
|
|
decl_file (data1) urng.ads (1)
|
|
decl_line (data1) 4
|
|
decl_column (data1) 9
|
|
sibling (ref4) [ 8d]
|
|
[ 4e] member abbrev: 4
|
|
name (string) "u"
|
|
decl_file (data1) urng.ads (1)
|
|
decl_line (data1) 4
|
|
decl_column (data1) 14
|
|
type (ref4) [ 2d]
|
|
data_member_location (data1) 0
|
|
[ 59] variant_part abbrev: 5
|
|
discr (ref4) [ 4e]
|
|
[ 5e] variant abbrev: 6
|
|
discr_list (block1) label 17, label 23, range 32768..65535
|
|
[ 6b] variant abbrev: 7
|
|
discr_value (udata) 256
|
|
sibling (ref4) [ 7e]
|
|
[ 72] member abbrev: 4
|
|
name (string) "b"
|
|
decl_file (data1) urng.ads (1)
|
|
decl_line (data1) 9
|
|
decl_column (data1) 13
|
|
type (ref4) [ a4]
|
|
data_member_location (data1) 4
|
|
[ 7e] variant abbrev: 8
|
|
[ 7f] member abbrev: 4
|
|
name (string) "i"
|
|
decl_file (data1) urng.ads (1)
|
|
decl_line (data1) 11
|
|
decl_column (data1) 13
|
|
type (ref4) [ ab]
|
|
data_member_location (data1) 4
|
|
[ 8d] dwarf_procedure abbrev: 9
|
|
location (exprloc)
|
|
[ 0] dup
|
|
[ 1] lit17
|
|
[ 2] ne
|
|
[ 3] over
|
|
[ 4] lit23
|
|
[ 5] ne
|
|
[ 6] and
|
|
[ 7] over
|
|
[ 8] lit0
|
|
[ 9] ge
|
|
[10] and
|
|
[11] bra 18
|
|
[14] lit0
|
|
[15] skip 19
|
|
[18] lit4
|
|
[19] swap
|
|
[20] drop
|
|
[ a4] base_type abbrev: 2
|
|
byte_size (data1) 1
|
|
encoding (data1) boolean (2)
|
|
name (strp) "boolean"
|
|
[ ab] base_type abbrev: 10
|
|
byte_size (data1) 4
|
|
encoding (data1) signed (5)
|
|
name (strp) "integer"
|
|
artificial (flag_present) yes
|
|
[ b2] variable abbrev: 11
|
|
name (strp) "urng__r"
|
|
decl_file (data1) urng.ads (1)
|
|
decl_line (data1) 15
|
|
decl_column (data1) 4
|
|
type (ref4) [ 34]
|
|
external (flag_present) yes
|
|
location (exprloc)
|
|
[ 0] addr 0x3d8
|
|
[ c8] subprogram abbrev: 12
|
|
external (flag_present) yes
|
|
name (strp) "urng___elabs"
|
|
artificial (flag_present) yes
|
|
low_pc (addr) 0x0000000000000386
|
|
high_pc (data8) 22 (0x000000000000039c)
|
|
frame_base (exprloc)
|
|
[ 0] call_frame_cfa
|
|
EOF
|