Blame tests/run-readelf-discr.sh

Packit 032894
#! /bin/sh
Packit 032894
# Copyright (C) 2019 Red Hat, Inc.
Packit 032894
# This file is part of elfutils.
Packit 032894
#
Packit 032894
# This file is free software; you can redistribute it and/or modify
Packit 032894
# it under the terms of the GNU General Public License as published by
Packit 032894
# the Free Software Foundation; either version 3 of the License, or
Packit 032894
# (at your option) any later version.
Packit 032894
#
Packit 032894
# elfutils is distributed in the hope that it will be useful, but
Packit 032894
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 032894
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 032894
# GNU General Public License for more details.
Packit 032894
#
Packit 032894
# You should have received a copy of the GNU General Public License
Packit 032894
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit 032894
Packit 032894
. $srcdir/test-subr.sh
Packit 032894
Packit 032894
# = rng.ads =
Packit 032894
# package Rng is
Packit 032894
# 
Packit 032894
#    type Rec (I : Integer) is record
Packit 032894
#       case I is
Packit 032894
#  when Positive =>
Packit 032894
#     case I is
Packit 032894
#        when 1..15 | 17 | 23 =>
Packit 032894
#   null;
Packit 032894
#        when others =>
Packit 032894
#   J : Integer;
Packit 032894
#     end case;
Packit 032894
#  when -52..-1 =>
Packit 032894
#     Q: Integer;
Packit 032894
#  when -64 =>
Packit 032894
#     R: Boolean;
Packit 032894
#  when others =>
Packit 032894
#     null;
Packit 032894
#       end case;
Packit 032894
#    end record;
Packit 032894
# 
Packit 032894
#    R : Rec (1);
Packit 032894
# 
Packit 032894
# end Rng;
Packit 032894
Packit 032894
# = urng.ads =
Packit 032894
#
Packit 032894
# package Urng is
Packit 032894
# 
Packit 032894
#    type Unsigned is mod 65536;
Packit 032894
#    type Rec (U : Unsigned) is record
Packit 032894
#       case U is
Packit 032894
#  when 17 | 23 | 32768..65535 =>
Packit 032894
#     null;
Packit 032894
#  when 256 => 
Packit 032894
#     B: Boolean;
Packit 032894
#  when others =>
Packit 032894
#     I : Integer;
Packit 032894
#       end case;
Packit 032894
#    end record;
Packit 032894
# 
Packit 032894
#    R : Rec (1);
Packit 032894
# 
Packit 032894
# end Urng;
Packit 032894
Packit 032894
# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf rng.ads
Packit 032894
# eu-strip -g -f rng.debug rng.o 
Packit 032894
# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf urng.ads
Packit 032894
# eu-strip -g -f urng.debug urng.o 
Packit 032894
Packit 032894
testfiles testfile-rng.debug testfile-urng.debug
Packit 032894
Packit 032894
testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-rng.debug testfile-urng.debug <
Packit 032894
Packit 032894
testfile-rng.debug:
Packit 032894
Packit 032894
Packit 032894
DWARF section [ 5] '.debug_info' at offset 0x40:
Packit 032894
 [Offset]
Packit 032894
 Compilation unit at offset 0:
Packit 032894
 Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
Packit 032894
 [     b]  compile_unit         abbrev: 1
Packit 032894
           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"
Packit 032894
           language             (data1) Ada95 (13)
Packit 032894
           name                 (strp) "rng.ads"
Packit 032894
           comp_dir             (strp) "/home/mark"
Packit 032894
           low_pc               (addr) 000000000000000000
Packit 032894
           high_pc              (data8) 2016 (0x00000000000007e0)
Packit 032894
           stmt_list            (sec_offset) 0
Packit 032894
 [    2d]    structure_type       abbrev: 2
Packit 032894
             name                 (strp) "rng__rec"
Packit 032894
             byte_size            (exprloc) 
Packit 032894
              [ 0] push_object_address
Packit 032894
              [ 1] deref_size 4
Packit 032894
              [ 3] call4 [    c6]
Packit 032894
              [ 8] plus_uconst 7
Packit 032894
              [10] const1s -4
Packit 032894
              [12] and
Packit 032894
             decl_file            (data1) rng.ads (1)
Packit 032894
             decl_line            (data1) 3
Packit 032894
             decl_column          (data1) 9
Packit 032894
             sibling              (ref4) [    ab]
Packit 032894
 [    47]      member               abbrev: 3
Packit 032894
               name                 (string) "i"
Packit 032894
               decl_file            (data1) rng.ads (1)
Packit 032894
               decl_line            (data1) 3
Packit 032894
               decl_column          (data1) 14
Packit 032894
               type                 (ref4) [    fe]
Packit 032894
               data_member_location (data1) 0
Packit 032894
 [    52]      variant_part         abbrev: 4
Packit 032894
               discr                (ref4) [    47]
Packit 032894
 [    57]        variant              abbrev: 5
Packit 032894
                 discr_list           (block1) range 1..2147483647
Packit 032894
                 sibling              (ref4) [    81]
Packit 032894
 [    64]          variant_part         abbrev: 4
Packit 032894
                   discr                (ref4) [    47]
Packit 032894
 [    69]            variant              abbrev: 6
Packit 032894
                     discr_list           (block1) range 1..15, label 17, label 23
Packit 032894
 [    72]            variant              abbrev: 7
Packit 032894
 [    73]              member               abbrev: 3
Packit 032894
                       name                 (string) "j"
Packit 032894
                       decl_file            (data1) rng.ads (1)
Packit 032894
                       decl_line            (data1) 10
Packit 032894
                       decl_column          (data1) 19
Packit 032894
                       type                 (ref4) [    fe]
Packit 032894
                       data_member_location (data1) 4
Packit 032894
 [    81]        variant              abbrev: 5
Packit 032894
                 discr_list           (block1) range -52..-1
Packit 032894
                 sibling              (ref4) [    96]
Packit 032894
 [    8a]          member               abbrev: 3
Packit 032894
                   name                 (string) "q"
Packit 032894
                   decl_file            (data1) rng.ads (1)
Packit 032894
                   decl_line            (data1) 13
Packit 032894
                   decl_column          (data1) 13
Packit 032894
                   type                 (ref4) [    fe]
Packit 032894
                   data_member_location (data1) 4
Packit 032894
 [    96]        variant              abbrev: 8
Packit 032894
                 discr_value          (sdata) -64
Packit 032894
                 sibling              (ref4) [    a8]
Packit 032894
 [    9c]          member               abbrev: 3
Packit 032894
                   name                 (string) "r"
Packit 032894
                   decl_file            (data1) rng.ads (1)
Packit 032894
                   decl_line            (data1) 15
Packit 032894
                   decl_column          (data1) 13
Packit 032894
                   type                 (ref4) [   105]
Packit 032894
                   data_member_location (data1) 4
Packit 032894
 [    a8]        variant              abbrev: 9
Packit 032894
 [    ab]    dwarf_procedure      abbrev: 10
Packit 032894
             location             (exprloc) 
Packit 032894
              [ 0] dup
Packit 032894
              [ 1] lit0
Packit 032894
              [ 2] gt
Packit 032894
              [ 3] over
Packit 032894
              [ 4] lit15
Packit 032894
              [ 5] le
Packit 032894
              [ 6] and
Packit 032894
              [ 7] over
Packit 032894
              [ 8] lit17
Packit 032894
              [ 9] eq
Packit 032894
              [10] or
Packit 032894
              [11] over
Packit 032894
              [12] lit23
Packit 032894
              [13] eq
Packit 032894
              [14] or
Packit 032894
              [15] bra 22
Packit 032894
              [18] lit4
Packit 032894
              [19] skip 23
Packit 032894
              [22] lit0
Packit 032894
              [23] swap
Packit 032894
              [24] drop
Packit 032894
 [    c6]    dwarf_procedure      abbrev: 10
Packit 032894
             location             (exprloc) 
Packit 032894
              [ 0] dup
Packit 032894
              [ 1] lit0
Packit 032894
              [ 2] gt
Packit 032894
              [ 3] bra 36
Packit 032894
              [ 6] dup
Packit 032894
              [ 7] const1s -52
Packit 032894
              [ 9] lt
Packit 032894
              [10] over
Packit 032894
              [11] lit0
Packit 032894
              [12] ge
Packit 032894
              [13] or
Packit 032894
              [14] bra 21
Packit 032894
              [17] lit4
Packit 032894
              [18] skip 33
Packit 032894
              [21] dup
Packit 032894
              [22] const1s -64
Packit 032894
              [24] eq
Packit 032894
              [25] bra 32
Packit 032894
              [28] lit0
Packit 032894
              [29] skip 33
Packit 032894
              [32] lit4
Packit 032894
              [33] skip 52
Packit 032894
              [36] dup
Packit 032894
              [37] call4 [    ab]
Packit 032894
              [42] plus_uconst 3
Packit 032894
              [44] const1s -4
Packit 032894
              [46] and
Packit 032894
              [47] plus_uconst 3
Packit 032894
              [49] const1s -4
Packit 032894
              [51] and
Packit 032894
              [52] swap
Packit 032894
              [53] drop
Packit 032894
 [    fe]    base_type            abbrev: 11
Packit 032894
             byte_size            (data1) 4
Packit 032894
             encoding             (data1) signed (5)
Packit 032894
             name                 (strp) "integer"
Packit 032894
             artificial           (flag_present) yes
Packit 032894
 [   105]    base_type            abbrev: 12
Packit 032894
             byte_size            (data1) 1
Packit 032894
             encoding             (data1) boolean (2)
Packit 032894
             name                 (strp) "boolean"
Packit 032894
 [   10c]    variable             abbrev: 13
Packit 032894
             name                 (strp) "rng__r"
Packit 032894
             decl_file            (data1) rng.ads (1)
Packit 032894
             decl_line            (data1) 21
Packit 032894
             decl_column          (data1) 4
Packit 032894
             type                 (ref4) [    2d]
Packit 032894
             external             (flag_present) yes
Packit 032894
             location             (exprloc) 
Packit 032894
              [ 0] addr 0x7e4
Packit 032894
 [   122]    subprogram           abbrev: 14
Packit 032894
             external             (flag_present) yes
Packit 032894
             name                 (strp) "rng___elabs"
Packit 032894
             artificial           (flag_present) yes
Packit 032894
             low_pc               (addr) 0x0000000000000734
Packit 032894
             high_pc              (data8) 22 (0x000000000000074a)
Packit 032894
             frame_base           (exprloc) 
Packit 032894
              [ 0] call_frame_cfa
Packit 032894
Packit 032894
testfile-urng.debug:
Packit 032894
Packit 032894
Packit 032894
DWARF section [ 5] '.debug_info' at offset 0x40:
Packit 032894
 [Offset]
Packit 032894
 Compilation unit at offset 0:
Packit 032894
 Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
Packit 032894
 [     b]  compile_unit         abbrev: 1
Packit 032894
           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"
Packit 032894
           language             (data1) Ada95 (13)
Packit 032894
           name                 (strp) "urng.ads"
Packit 032894
           comp_dir             (strp) "/home/mark"
Packit 032894
           low_pc               (addr) 000000000000000000
Packit 032894
           high_pc              (data8) 977 (0x00000000000003d1)
Packit 032894
           stmt_list            (sec_offset) 0
Packit 032894
 [    2d]    base_type            abbrev: 2
Packit 032894
             byte_size            (data1) 2
Packit 032894
             encoding             (data1) unsigned (7)
Packit 032894
             name                 (strp) "urng__unsigned"
Packit 032894
 [    34]    structure_type       abbrev: 3
Packit 032894
             name                 (strp) "urng__rec"
Packit 032894
             byte_size            (exprloc) 
Packit 032894
              [ 0] push_object_address
Packit 032894
              [ 1] deref_size 2
Packit 032894
              [ 3] call4 [    8d]
Packit 032894
              [ 8] plus_uconst 7
Packit 032894
              [10] const1s -4
Packit 032894
              [12] and
Packit 032894
             decl_file            (data1) urng.ads (1)
Packit 032894
             decl_line            (data1) 4
Packit 032894
             decl_column          (data1) 9
Packit 032894
             sibling              (ref4) [    8d]
Packit 032894
 [    4e]      member               abbrev: 4
Packit 032894
               name                 (string) "u"
Packit 032894
               decl_file            (data1) urng.ads (1)
Packit 032894
               decl_line            (data1) 4
Packit 032894
               decl_column          (data1) 14
Packit 032894
               type                 (ref4) [    2d]
Packit 032894
               data_member_location (data1) 0
Packit 032894
 [    59]      variant_part         abbrev: 5
Packit 032894
               discr                (ref4) [    4e]
Packit 032894
 [    5e]        variant              abbrev: 6
Packit 032894
                 discr_list           (block1) label 17, label 23, range 32768..65535
Packit 032894
 [    6b]        variant              abbrev: 7
Packit 032894
                 discr_value          (udata) 256
Packit 032894
                 sibling              (ref4) [    7e]
Packit 032894
 [    72]          member               abbrev: 4
Packit 032894
                   name                 (string) "b"
Packit 032894
                   decl_file            (data1) urng.ads (1)
Packit 032894
                   decl_line            (data1) 9
Packit 032894
                   decl_column          (data1) 13
Packit 032894
                   type                 (ref4) [    a4]
Packit 032894
                   data_member_location (data1) 4
Packit 032894
 [    7e]        variant              abbrev: 8
Packit 032894
 [    7f]          member               abbrev: 4
Packit 032894
                   name                 (string) "i"
Packit 032894
                   decl_file            (data1) urng.ads (1)
Packit 032894
                   decl_line            (data1) 11
Packit 032894
                   decl_column          (data1) 13
Packit 032894
                   type                 (ref4) [    ab]
Packit 032894
                   data_member_location (data1) 4
Packit 032894
 [    8d]    dwarf_procedure      abbrev: 9
Packit 032894
             location             (exprloc) 
Packit 032894
              [ 0] dup
Packit 032894
              [ 1] lit17
Packit 032894
              [ 2] ne
Packit 032894
              [ 3] over
Packit 032894
              [ 4] lit23
Packit 032894
              [ 5] ne
Packit 032894
              [ 6] and
Packit 032894
              [ 7] over
Packit 032894
              [ 8] lit0
Packit 032894
              [ 9] ge
Packit 032894
              [10] and
Packit 032894
              [11] bra 18
Packit 032894
              [14] lit0
Packit 032894
              [15] skip 19
Packit 032894
              [18] lit4
Packit 032894
              [19] swap
Packit 032894
              [20] drop
Packit 032894
 [    a4]    base_type            abbrev: 2
Packit 032894
             byte_size            (data1) 1
Packit 032894
             encoding             (data1) boolean (2)
Packit 032894
             name                 (strp) "boolean"
Packit 032894
 [    ab]    base_type            abbrev: 10
Packit 032894
             byte_size            (data1) 4
Packit 032894
             encoding             (data1) signed (5)
Packit 032894
             name                 (strp) "integer"
Packit 032894
             artificial           (flag_present) yes
Packit 032894
 [    b2]    variable             abbrev: 11
Packit 032894
             name                 (strp) "urng__r"
Packit 032894
             decl_file            (data1) urng.ads (1)
Packit 032894
             decl_line            (data1) 15
Packit 032894
             decl_column          (data1) 4
Packit 032894
             type                 (ref4) [    34]
Packit 032894
             external             (flag_present) yes
Packit 032894
             location             (exprloc) 
Packit 032894
              [ 0] addr 0x3d8
Packit 032894
 [    c8]    subprogram           abbrev: 12
Packit 032894
             external             (flag_present) yes
Packit 032894
             name                 (strp) "urng___elabs"
Packit 032894
             artificial           (flag_present) yes
Packit 032894
             low_pc               (addr) 0x0000000000000386
Packit 032894
             high_pc              (data8) 22 (0x000000000000039c)
Packit 032894
             frame_base           (exprloc) 
Packit 032894
              [ 0] call_frame_cfa
Packit 032894
EOF