1da0c48c4Sopenharmony_ci#! /bin/sh 2da0c48c4Sopenharmony_ci# Copyright (C) 2019 Red Hat, Inc. 3da0c48c4Sopenharmony_ci# This file is part of elfutils. 4da0c48c4Sopenharmony_ci# 5da0c48c4Sopenharmony_ci# This file is free software; you can redistribute it and/or modify 6da0c48c4Sopenharmony_ci# it under the terms of the GNU General Public License as published by 7da0c48c4Sopenharmony_ci# the Free Software Foundation; either version 3 of the License, or 8da0c48c4Sopenharmony_ci# (at your option) any later version. 9da0c48c4Sopenharmony_ci# 10da0c48c4Sopenharmony_ci# elfutils is distributed in the hope that it will be useful, but 11da0c48c4Sopenharmony_ci# WITHOUT ANY WARRANTY; without even the implied warranty of 12da0c48c4Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13da0c48c4Sopenharmony_ci# GNU General Public License for more details. 14da0c48c4Sopenharmony_ci# 15da0c48c4Sopenharmony_ci# You should have received a copy of the GNU General Public License 16da0c48c4Sopenharmony_ci# along with this program. If not, see <http://www.gnu.org/licenses/>. 17da0c48c4Sopenharmony_ci 18da0c48c4Sopenharmony_ci. $srcdir/test-subr.sh 19da0c48c4Sopenharmony_ci 20da0c48c4Sopenharmony_ci# = rng.ads = 21da0c48c4Sopenharmony_ci# package Rng is 22da0c48c4Sopenharmony_ci# 23da0c48c4Sopenharmony_ci# type Rec (I : Integer) is record 24da0c48c4Sopenharmony_ci# case I is 25da0c48c4Sopenharmony_ci# when Positive => 26da0c48c4Sopenharmony_ci# case I is 27da0c48c4Sopenharmony_ci# when 1..15 | 17 | 23 => 28da0c48c4Sopenharmony_ci# null; 29da0c48c4Sopenharmony_ci# when others => 30da0c48c4Sopenharmony_ci# J : Integer; 31da0c48c4Sopenharmony_ci# end case; 32da0c48c4Sopenharmony_ci# when -52..-1 => 33da0c48c4Sopenharmony_ci# Q: Integer; 34da0c48c4Sopenharmony_ci# when -64 => 35da0c48c4Sopenharmony_ci# R: Boolean; 36da0c48c4Sopenharmony_ci# when others => 37da0c48c4Sopenharmony_ci# null; 38da0c48c4Sopenharmony_ci# end case; 39da0c48c4Sopenharmony_ci# end record; 40da0c48c4Sopenharmony_ci# 41da0c48c4Sopenharmony_ci# R : Rec (1); 42da0c48c4Sopenharmony_ci# 43da0c48c4Sopenharmony_ci# end Rng; 44da0c48c4Sopenharmony_ci 45da0c48c4Sopenharmony_ci# = urng.ads = 46da0c48c4Sopenharmony_ci# 47da0c48c4Sopenharmony_ci# package Urng is 48da0c48c4Sopenharmony_ci# 49da0c48c4Sopenharmony_ci# type Unsigned is mod 65536; 50da0c48c4Sopenharmony_ci# type Rec (U : Unsigned) is record 51da0c48c4Sopenharmony_ci# case U is 52da0c48c4Sopenharmony_ci# when 17 | 23 | 32768..65535 => 53da0c48c4Sopenharmony_ci# null; 54da0c48c4Sopenharmony_ci# when 256 => 55da0c48c4Sopenharmony_ci# B: Boolean; 56da0c48c4Sopenharmony_ci# when others => 57da0c48c4Sopenharmony_ci# I : Integer; 58da0c48c4Sopenharmony_ci# end case; 59da0c48c4Sopenharmony_ci# end record; 60da0c48c4Sopenharmony_ci# 61da0c48c4Sopenharmony_ci# R : Rec (1); 62da0c48c4Sopenharmony_ci# 63da0c48c4Sopenharmony_ci# end Urng; 64da0c48c4Sopenharmony_ci 65da0c48c4Sopenharmony_ci# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf rng.ads 66da0c48c4Sopenharmony_ci# eu-strip -g -f rng.debug rng.o 67da0c48c4Sopenharmony_ci# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf urng.ads 68da0c48c4Sopenharmony_ci# eu-strip -g -f urng.debug urng.o 69da0c48c4Sopenharmony_ci 70da0c48c4Sopenharmony_citestfiles testfile-rng.debug testfile-urng.debug 71da0c48c4Sopenharmony_ci 72da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-rng.debug testfile-urng.debug <<EOF 73da0c48c4Sopenharmony_ci 74da0c48c4Sopenharmony_citestfile-rng.debug: 75da0c48c4Sopenharmony_ci 76da0c48c4Sopenharmony_ci 77da0c48c4Sopenharmony_ciDWARF section [ 5] '.debug_info' at offset 0x40: 78da0c48c4Sopenharmony_ci [Offset] 79da0c48c4Sopenharmony_ci Compilation unit at offset 0: 80da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 81da0c48c4Sopenharmony_ci [ b] compile_unit abbrev: 1 82da0c48c4Sopenharmony_ci 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" 83da0c48c4Sopenharmony_ci language (data1) Ada95 (13) 84da0c48c4Sopenharmony_ci name (strp) "rng.ads" 85da0c48c4Sopenharmony_ci comp_dir (strp) "/home/mark" 86da0c48c4Sopenharmony_ci low_pc (addr) 000000000000000000 87da0c48c4Sopenharmony_ci high_pc (data8) 2016 (0x00000000000007e0) 88da0c48c4Sopenharmony_ci stmt_list (sec_offset) 0 89da0c48c4Sopenharmony_ci [ 2d] structure_type abbrev: 2 90da0c48c4Sopenharmony_ci name (strp) "rng__rec" 91da0c48c4Sopenharmony_ci byte_size (exprloc) 92da0c48c4Sopenharmony_ci [ 0] push_object_address 93da0c48c4Sopenharmony_ci [ 1] deref_size 4 94da0c48c4Sopenharmony_ci [ 3] call4 [ c6] 95da0c48c4Sopenharmony_ci [ 8] plus_uconst 7 96da0c48c4Sopenharmony_ci [10] const1s -4 97da0c48c4Sopenharmony_ci [12] and 98da0c48c4Sopenharmony_ci decl_file (data1) rng.ads (1) 99da0c48c4Sopenharmony_ci decl_line (data1) 3 100da0c48c4Sopenharmony_ci decl_column (data1) 9 101da0c48c4Sopenharmony_ci sibling (ref4) [ ab] 102da0c48c4Sopenharmony_ci [ 47] member abbrev: 3 103da0c48c4Sopenharmony_ci name (string) "i" 104da0c48c4Sopenharmony_ci decl_file (data1) rng.ads (1) 105da0c48c4Sopenharmony_ci decl_line (data1) 3 106da0c48c4Sopenharmony_ci decl_column (data1) 14 107da0c48c4Sopenharmony_ci type (ref4) [ fe] 108da0c48c4Sopenharmony_ci data_member_location (data1) 0 109da0c48c4Sopenharmony_ci [ 52] variant_part abbrev: 4 110da0c48c4Sopenharmony_ci discr (ref4) [ 47] 111da0c48c4Sopenharmony_ci [ 57] variant abbrev: 5 112da0c48c4Sopenharmony_ci discr_list (block1) range 1..2147483647 113da0c48c4Sopenharmony_ci sibling (ref4) [ 81] 114da0c48c4Sopenharmony_ci [ 64] variant_part abbrev: 4 115da0c48c4Sopenharmony_ci discr (ref4) [ 47] 116da0c48c4Sopenharmony_ci [ 69] variant abbrev: 6 117da0c48c4Sopenharmony_ci discr_list (block1) range 1..15, label 17, label 23 118da0c48c4Sopenharmony_ci [ 72] variant abbrev: 7 119da0c48c4Sopenharmony_ci [ 73] member abbrev: 3 120da0c48c4Sopenharmony_ci name (string) "j" 121da0c48c4Sopenharmony_ci decl_file (data1) rng.ads (1) 122da0c48c4Sopenharmony_ci decl_line (data1) 10 123da0c48c4Sopenharmony_ci decl_column (data1) 19 124da0c48c4Sopenharmony_ci type (ref4) [ fe] 125da0c48c4Sopenharmony_ci data_member_location (data1) 4 126da0c48c4Sopenharmony_ci [ 81] variant abbrev: 5 127da0c48c4Sopenharmony_ci discr_list (block1) range -52..-1 128da0c48c4Sopenharmony_ci sibling (ref4) [ 96] 129da0c48c4Sopenharmony_ci [ 8a] member abbrev: 3 130da0c48c4Sopenharmony_ci name (string) "q" 131da0c48c4Sopenharmony_ci decl_file (data1) rng.ads (1) 132da0c48c4Sopenharmony_ci decl_line (data1) 13 133da0c48c4Sopenharmony_ci decl_column (data1) 13 134da0c48c4Sopenharmony_ci type (ref4) [ fe] 135da0c48c4Sopenharmony_ci data_member_location (data1) 4 136da0c48c4Sopenharmony_ci [ 96] variant abbrev: 8 137da0c48c4Sopenharmony_ci discr_value (sdata) -64 138da0c48c4Sopenharmony_ci sibling (ref4) [ a8] 139da0c48c4Sopenharmony_ci [ 9c] member abbrev: 3 140da0c48c4Sopenharmony_ci name (string) "r" 141da0c48c4Sopenharmony_ci decl_file (data1) rng.ads (1) 142da0c48c4Sopenharmony_ci decl_line (data1) 15 143da0c48c4Sopenharmony_ci decl_column (data1) 13 144da0c48c4Sopenharmony_ci type (ref4) [ 105] 145da0c48c4Sopenharmony_ci data_member_location (data1) 4 146da0c48c4Sopenharmony_ci [ a8] variant abbrev: 9 147da0c48c4Sopenharmony_ci [ ab] dwarf_procedure abbrev: 10 148da0c48c4Sopenharmony_ci location (exprloc) 149da0c48c4Sopenharmony_ci [ 0] dup 150da0c48c4Sopenharmony_ci [ 1] lit0 151da0c48c4Sopenharmony_ci [ 2] gt 152da0c48c4Sopenharmony_ci [ 3] over 153da0c48c4Sopenharmony_ci [ 4] lit15 154da0c48c4Sopenharmony_ci [ 5] le 155da0c48c4Sopenharmony_ci [ 6] and 156da0c48c4Sopenharmony_ci [ 7] over 157da0c48c4Sopenharmony_ci [ 8] lit17 158da0c48c4Sopenharmony_ci [ 9] eq 159da0c48c4Sopenharmony_ci [10] or 160da0c48c4Sopenharmony_ci [11] over 161da0c48c4Sopenharmony_ci [12] lit23 162da0c48c4Sopenharmony_ci [13] eq 163da0c48c4Sopenharmony_ci [14] or 164da0c48c4Sopenharmony_ci [15] bra 22 165da0c48c4Sopenharmony_ci [18] lit4 166da0c48c4Sopenharmony_ci [19] skip 23 167da0c48c4Sopenharmony_ci [22] lit0 168da0c48c4Sopenharmony_ci [23] swap 169da0c48c4Sopenharmony_ci [24] drop 170da0c48c4Sopenharmony_ci [ c6] dwarf_procedure abbrev: 10 171da0c48c4Sopenharmony_ci location (exprloc) 172da0c48c4Sopenharmony_ci [ 0] dup 173da0c48c4Sopenharmony_ci [ 1] lit0 174da0c48c4Sopenharmony_ci [ 2] gt 175da0c48c4Sopenharmony_ci [ 3] bra 36 176da0c48c4Sopenharmony_ci [ 6] dup 177da0c48c4Sopenharmony_ci [ 7] const1s -52 178da0c48c4Sopenharmony_ci [ 9] lt 179da0c48c4Sopenharmony_ci [10] over 180da0c48c4Sopenharmony_ci [11] lit0 181da0c48c4Sopenharmony_ci [12] ge 182da0c48c4Sopenharmony_ci [13] or 183da0c48c4Sopenharmony_ci [14] bra 21 184da0c48c4Sopenharmony_ci [17] lit4 185da0c48c4Sopenharmony_ci [18] skip 33 186da0c48c4Sopenharmony_ci [21] dup 187da0c48c4Sopenharmony_ci [22] const1s -64 188da0c48c4Sopenharmony_ci [24] eq 189da0c48c4Sopenharmony_ci [25] bra 32 190da0c48c4Sopenharmony_ci [28] lit0 191da0c48c4Sopenharmony_ci [29] skip 33 192da0c48c4Sopenharmony_ci [32] lit4 193da0c48c4Sopenharmony_ci [33] skip 52 194da0c48c4Sopenharmony_ci [36] dup 195da0c48c4Sopenharmony_ci [37] call4 [ ab] 196da0c48c4Sopenharmony_ci [42] plus_uconst 3 197da0c48c4Sopenharmony_ci [44] const1s -4 198da0c48c4Sopenharmony_ci [46] and 199da0c48c4Sopenharmony_ci [47] plus_uconst 3 200da0c48c4Sopenharmony_ci [49] const1s -4 201da0c48c4Sopenharmony_ci [51] and 202da0c48c4Sopenharmony_ci [52] swap 203da0c48c4Sopenharmony_ci [53] drop 204da0c48c4Sopenharmony_ci [ fe] base_type abbrev: 11 205da0c48c4Sopenharmony_ci byte_size (data1) 4 206da0c48c4Sopenharmony_ci encoding (data1) signed (5) 207da0c48c4Sopenharmony_ci name (strp) "integer" 208da0c48c4Sopenharmony_ci artificial (flag_present) yes 209da0c48c4Sopenharmony_ci [ 105] base_type abbrev: 12 210da0c48c4Sopenharmony_ci byte_size (data1) 1 211da0c48c4Sopenharmony_ci encoding (data1) boolean (2) 212da0c48c4Sopenharmony_ci name (strp) "boolean" 213da0c48c4Sopenharmony_ci [ 10c] variable abbrev: 13 214da0c48c4Sopenharmony_ci name (strp) "rng__r" 215da0c48c4Sopenharmony_ci decl_file (data1) rng.ads (1) 216da0c48c4Sopenharmony_ci decl_line (data1) 21 217da0c48c4Sopenharmony_ci decl_column (data1) 4 218da0c48c4Sopenharmony_ci type (ref4) [ 2d] 219da0c48c4Sopenharmony_ci external (flag_present) yes 220da0c48c4Sopenharmony_ci location (exprloc) 221da0c48c4Sopenharmony_ci [ 0] addr 0x7e4 222da0c48c4Sopenharmony_ci [ 122] subprogram abbrev: 14 223da0c48c4Sopenharmony_ci external (flag_present) yes 224da0c48c4Sopenharmony_ci name (strp) "rng___elabs" 225da0c48c4Sopenharmony_ci artificial (flag_present) yes 226da0c48c4Sopenharmony_ci low_pc (addr) 0x0000000000000734 227da0c48c4Sopenharmony_ci high_pc (data8) 22 (0x000000000000074a) 228da0c48c4Sopenharmony_ci frame_base (exprloc) 229da0c48c4Sopenharmony_ci [ 0] call_frame_cfa 230da0c48c4Sopenharmony_ci 231da0c48c4Sopenharmony_citestfile-urng.debug: 232da0c48c4Sopenharmony_ci 233da0c48c4Sopenharmony_ci 234da0c48c4Sopenharmony_ciDWARF section [ 5] '.debug_info' at offset 0x40: 235da0c48c4Sopenharmony_ci [Offset] 236da0c48c4Sopenharmony_ci Compilation unit at offset 0: 237da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 238da0c48c4Sopenharmony_ci [ b] compile_unit abbrev: 1 239da0c48c4Sopenharmony_ci 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" 240da0c48c4Sopenharmony_ci language (data1) Ada95 (13) 241da0c48c4Sopenharmony_ci name (strp) "urng.ads" 242da0c48c4Sopenharmony_ci comp_dir (strp) "/home/mark" 243da0c48c4Sopenharmony_ci low_pc (addr) 000000000000000000 244da0c48c4Sopenharmony_ci high_pc (data8) 977 (0x00000000000003d1) 245da0c48c4Sopenharmony_ci stmt_list (sec_offset) 0 246da0c48c4Sopenharmony_ci [ 2d] base_type abbrev: 2 247da0c48c4Sopenharmony_ci byte_size (data1) 2 248da0c48c4Sopenharmony_ci encoding (data1) unsigned (7) 249da0c48c4Sopenharmony_ci name (strp) "urng__unsigned" 250da0c48c4Sopenharmony_ci [ 34] structure_type abbrev: 3 251da0c48c4Sopenharmony_ci name (strp) "urng__rec" 252da0c48c4Sopenharmony_ci byte_size (exprloc) 253da0c48c4Sopenharmony_ci [ 0] push_object_address 254da0c48c4Sopenharmony_ci [ 1] deref_size 2 255da0c48c4Sopenharmony_ci [ 3] call4 [ 8d] 256da0c48c4Sopenharmony_ci [ 8] plus_uconst 7 257da0c48c4Sopenharmony_ci [10] const1s -4 258da0c48c4Sopenharmony_ci [12] and 259da0c48c4Sopenharmony_ci decl_file (data1) urng.ads (1) 260da0c48c4Sopenharmony_ci decl_line (data1) 4 261da0c48c4Sopenharmony_ci decl_column (data1) 9 262da0c48c4Sopenharmony_ci sibling (ref4) [ 8d] 263da0c48c4Sopenharmony_ci [ 4e] member abbrev: 4 264da0c48c4Sopenharmony_ci name (string) "u" 265da0c48c4Sopenharmony_ci decl_file (data1) urng.ads (1) 266da0c48c4Sopenharmony_ci decl_line (data1) 4 267da0c48c4Sopenharmony_ci decl_column (data1) 14 268da0c48c4Sopenharmony_ci type (ref4) [ 2d] 269da0c48c4Sopenharmony_ci data_member_location (data1) 0 270da0c48c4Sopenharmony_ci [ 59] variant_part abbrev: 5 271da0c48c4Sopenharmony_ci discr (ref4) [ 4e] 272da0c48c4Sopenharmony_ci [ 5e] variant abbrev: 6 273da0c48c4Sopenharmony_ci discr_list (block1) label 17, label 23, range 32768..65535 274da0c48c4Sopenharmony_ci [ 6b] variant abbrev: 7 275da0c48c4Sopenharmony_ci discr_value (udata) 256 276da0c48c4Sopenharmony_ci sibling (ref4) [ 7e] 277da0c48c4Sopenharmony_ci [ 72] member abbrev: 4 278da0c48c4Sopenharmony_ci name (string) "b" 279da0c48c4Sopenharmony_ci decl_file (data1) urng.ads (1) 280da0c48c4Sopenharmony_ci decl_line (data1) 9 281da0c48c4Sopenharmony_ci decl_column (data1) 13 282da0c48c4Sopenharmony_ci type (ref4) [ a4] 283da0c48c4Sopenharmony_ci data_member_location (data1) 4 284da0c48c4Sopenharmony_ci [ 7e] variant abbrev: 8 285da0c48c4Sopenharmony_ci [ 7f] member abbrev: 4 286da0c48c4Sopenharmony_ci name (string) "i" 287da0c48c4Sopenharmony_ci decl_file (data1) urng.ads (1) 288da0c48c4Sopenharmony_ci decl_line (data1) 11 289da0c48c4Sopenharmony_ci decl_column (data1) 13 290da0c48c4Sopenharmony_ci type (ref4) [ ab] 291da0c48c4Sopenharmony_ci data_member_location (data1) 4 292da0c48c4Sopenharmony_ci [ 8d] dwarf_procedure abbrev: 9 293da0c48c4Sopenharmony_ci location (exprloc) 294da0c48c4Sopenharmony_ci [ 0] dup 295da0c48c4Sopenharmony_ci [ 1] lit17 296da0c48c4Sopenharmony_ci [ 2] ne 297da0c48c4Sopenharmony_ci [ 3] over 298da0c48c4Sopenharmony_ci [ 4] lit23 299da0c48c4Sopenharmony_ci [ 5] ne 300da0c48c4Sopenharmony_ci [ 6] and 301da0c48c4Sopenharmony_ci [ 7] over 302da0c48c4Sopenharmony_ci [ 8] lit0 303da0c48c4Sopenharmony_ci [ 9] ge 304da0c48c4Sopenharmony_ci [10] and 305da0c48c4Sopenharmony_ci [11] bra 18 306da0c48c4Sopenharmony_ci [14] lit0 307da0c48c4Sopenharmony_ci [15] skip 19 308da0c48c4Sopenharmony_ci [18] lit4 309da0c48c4Sopenharmony_ci [19] swap 310da0c48c4Sopenharmony_ci [20] drop 311da0c48c4Sopenharmony_ci [ a4] base_type abbrev: 2 312da0c48c4Sopenharmony_ci byte_size (data1) 1 313da0c48c4Sopenharmony_ci encoding (data1) boolean (2) 314da0c48c4Sopenharmony_ci name (strp) "boolean" 315da0c48c4Sopenharmony_ci [ ab] base_type abbrev: 10 316da0c48c4Sopenharmony_ci byte_size (data1) 4 317da0c48c4Sopenharmony_ci encoding (data1) signed (5) 318da0c48c4Sopenharmony_ci name (strp) "integer" 319da0c48c4Sopenharmony_ci artificial (flag_present) yes 320da0c48c4Sopenharmony_ci [ b2] variable abbrev: 11 321da0c48c4Sopenharmony_ci name (strp) "urng__r" 322da0c48c4Sopenharmony_ci decl_file (data1) urng.ads (1) 323da0c48c4Sopenharmony_ci decl_line (data1) 15 324da0c48c4Sopenharmony_ci decl_column (data1) 4 325da0c48c4Sopenharmony_ci type (ref4) [ 34] 326da0c48c4Sopenharmony_ci external (flag_present) yes 327da0c48c4Sopenharmony_ci location (exprloc) 328da0c48c4Sopenharmony_ci [ 0] addr 0x3d8 329da0c48c4Sopenharmony_ci [ c8] subprogram abbrev: 12 330da0c48c4Sopenharmony_ci external (flag_present) yes 331da0c48c4Sopenharmony_ci name (strp) "urng___elabs" 332da0c48c4Sopenharmony_ci artificial (flag_present) yes 333da0c48c4Sopenharmony_ci low_pc (addr) 0x0000000000000386 334da0c48c4Sopenharmony_ci high_pc (data8) 22 (0x000000000000039c) 335da0c48c4Sopenharmony_ci frame_base (exprloc) 336da0c48c4Sopenharmony_ci [ 0] call_frame_cfa 337da0c48c4Sopenharmony_ciEOF 338