Blame tests/run-readelf-discr.sh

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