| #! /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 |