Home | History | Annotate | Line # | Download | only in gdb.dwarf2
dw2-common-block.S revision 1.1.1.8
      1 /* This testcase is part of GDB, the GNU debugger.
      2 
      3    Copyright 2012-2024 Free Software Foundation, Inc.
      4 
      5    This program is free software; you can redistribute it and/or modify
      6    it under the terms of the GNU General Public License as published by
      7    the Free Software Foundation; either version 3 of the License, or
      8    (at your option) any later version.
      9 
     10    This program is distributed in the hope that it will be useful,
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13    GNU General Public License for more details.
     14 
     15    You should have received a copy of the GNU General Public License
     16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17 
     18 /* This was made from ../gdb.fortran/common-block.f90 using
     19 	gfortran -dA -S -g
     20    and then hand-editing the assembly a bit to introduce
     21    DW_AT_data_member_location.
     22 
     23    Search for "#if 0" in this file to see the important edits.  */
     24 
     25 	.file	"common-block.f90"
     26 	.text
     27 .Ltext0:
     28 	.globl	in_
     29 	.type	in_, @function
     30 in_:
     31 .LFB0:
     32 	.file 1 "../gdb.fortran/common-block.f90"
     33 	# ../gdb.fortran/common-block.f90:21
     34 	.loc 1 21 0
     35 	.cfi_startproc
     36 	# basic block 2
     37 	pushq	%rbp
     38 	.cfi_def_cfa_offset 16
     39 	.cfi_offset 6, -16
     40 	movq	%rsp, %rbp
     41 	.cfi_def_cfa_register 6
     42 	subq	$16, %rsp
     43 	# ../gdb.fortran/common-block.f90:34
     44 	.loc 1 34 0
     45 	movl	$5, -4(%rbp)
     46 	# ../gdb.fortran/common-block.f90:35
     47 	.loc 1 35 0
     48 	movl	$55, -8(%rbp)
     49 	# ../gdb.fortran/common-block.f90:21
     50 	.loc 1 21 0
     51 	movl	fo_o_(%rip), %eax
     52 	# ../gdb.fortran/common-block.f90:37
     53 	.loc 1 37 0
     54 	cmpl	$11, %eax
     55 	jne	.L2
     56 	# basic block 3
     57 	# ../gdb.fortran/common-block.f90:21
     58 	.loc 1 21 0 discriminator 2
     59 	movss	fo_o_+4(%rip), %xmm0
     60 	# ../gdb.fortran/common-block.f90:37
     61 	.loc 1 37 0 discriminator 2
     62 	ucomiss	.LC0(%rip), %xmm0
     63 	jp	.L2
     64 	# basic block 4
     65 	ucomiss	.LC0(%rip), %xmm0
     66 	jne	.L2
     67 	# basic block 5
     68 	# ../gdb.fortran/common-block.f90:21
     69 	.loc 1 21 0 discriminator 3
     70 	movsd	fo_o_+8(%rip), %xmm0
     71 	# ../gdb.fortran/common-block.f90:37
     72 	.loc 1 37 0 discriminator 3
     73 	ucomisd	.LC1(%rip), %xmm0
     74 	jp	.L2
     75 	# basic block 6
     76 	ucomisd	.LC1(%rip), %xmm0
     77 	je	.L8
     78 .L2:
     79 	# basic block 7
     80 	# ../gdb.fortran/common-block.f90:37
     81 	.loc 1 37 0 is_stmt 0 discriminator 1
     82 	movl	$0, %eax
     83 	call	_gfortran_abort
     84 .L8:
     85 	# basic block 8
     86 	# ../gdb.fortran/common-block.f90:21
     87 	.loc 1 21 0 is_stmt 1
     88 	movl	foo_(%rip), %eax
     89 	# ../gdb.fortran/common-block.f90:38
     90 	.loc 1 38 0
     91 	cmpl	$1, %eax
     92 	jne	.L5
     93 	# basic block 9
     94 	# ../gdb.fortran/common-block.f90:21
     95 	.loc 1 21 0 discriminator 2
     96 	movss	foo_+4(%rip), %xmm0
     97 	# ../gdb.fortran/common-block.f90:38
     98 	.loc 1 38 0 discriminator 2
     99 	ucomiss	.LC2(%rip), %xmm0
    100 	jp	.L5
    101 	# basic block 10
    102 	ucomiss	.LC2(%rip), %xmm0
    103 	jne	.L5
    104 	# basic block 11
    105 	# ../gdb.fortran/common-block.f90:21
    106 	.loc 1 21 0 discriminator 3
    107 	movsd	foo_+8(%rip), %xmm0
    108 	# ../gdb.fortran/common-block.f90:38
    109 	.loc 1 38 0 discriminator 3
    110 	ucomisd	.LC3(%rip), %xmm0
    111 	jp	.L5
    112 	# basic block 12
    113 	ucomisd	.LC3(%rip), %xmm0
    114 	je	.L9
    115 .L5:
    116 	# basic block 13
    117 	# ../gdb.fortran/common-block.f90:38
    118 	.loc 1 38 0 is_stmt 0 discriminator 1
    119 	movl	$0, %eax
    120 	call	_gfortran_abort
    121 .L9:
    122 	# basic block 14
    123 	# ../gdb.fortran/common-block.f90:40
    124 	.loc 1 40 0 is_stmt 1
    125 	movl	$0, fo_o_(%rip)
    126 	# ../gdb.fortran/common-block.f90:42
    127 	.loc 1 42 0
    128 	leave
    129 	.cfi_def_cfa 7, 8
    130 	ret
    131 	.cfi_endproc
    132 .LFE0:
    133 	.size	in_, .-in_
    134 	.type	MAIN__, @function
    135 MAIN__:
    136 .LFB1:
    137 	# ../gdb.fortran/common-block.f90:44
    138 	.loc 1 44 0
    139 	.cfi_startproc
    140 	# basic block 2
    141 	pushq	%rbp
    142 	.cfi_def_cfa_offset 16
    143 	.cfi_offset 6, -16
    144 	movq	%rsp, %rbp
    145 	.cfi_def_cfa_register 6
    146 	# ../gdb.fortran/common-block.f90:57
    147 	.loc 1 57 0
    148 	movl	$1, foo_(%rip)
    149 	# ../gdb.fortran/common-block.f90:58
    150 	.loc 1 58 0
    151 	movl	$0x40000000, %eax
    152 	movl	%eax, foo_+4(%rip)
    153 	# ../gdb.fortran/common-block.f90:59
    154 	.loc 1 59 0
    155 	movabsq	$4613937818241073152, %rax
    156 	movq	%rax, foo_+8(%rip)
    157 	# ../gdb.fortran/common-block.f90:61
    158 	.loc 1 61 0
    159 	movl	$11, fo_o_(%rip)
    160 	# ../gdb.fortran/common-block.f90:62
    161 	.loc 1 62 0
    162 	movl	$0x41b00000, %eax
    163 	movl	%eax, fo_o_+4(%rip)
    164 	# ../gdb.fortran/common-block.f90:63
    165 	.loc 1 63 0
    166 	movabsq	$4629841154425225216, %rax
    167 	movq	%rax, fo_o_+8(%rip)
    168 	# ../gdb.fortran/common-block.f90:65
    169 	.loc 1 65 0
    170 	movl	$0, %eax
    171 	call	in_
    172 	# ../gdb.fortran/common-block.f90:67
    173 	.loc 1 67 0
    174 	popq	%rbp
    175 	.cfi_def_cfa 7, 8
    176 	ret
    177 	.cfi_endproc
    178 .LFE1:
    179 	.size	MAIN__, .-MAIN__
    180 	.globl	main
    181 	.type	main, @function
    182 main:
    183 .LFB2:
    184 	# ../gdb.fortran/common-block.f90:67
    185 	.loc 1 67 0
    186 	.cfi_startproc
    187 	# basic block 2
    188 	pushq	%rbp
    189 	.cfi_def_cfa_offset 16
    190 	.cfi_offset 6, -16
    191 	movq	%rsp, %rbp
    192 	.cfi_def_cfa_register 6
    193 	subq	$16, %rsp
    194 	movl	%edi, -4(%rbp)
    195 	movq	%rsi, -16(%rbp)
    196 	# ../gdb.fortran/common-block.f90:67
    197 	.loc 1 67 0
    198 	movq	-16(%rbp), %rdx
    199 	movl	-4(%rbp), %eax
    200 	movq	%rdx, %rsi
    201 	movl	%eax, %edi
    202 	call	_gfortran_set_args
    203 	movl	$options.0.1570, %esi
    204 	movl	$8, %edi
    205 	call	_gfortran_set_options
    206 	call	MAIN__
    207 	movl	$0, %eax
    208 	leave
    209 	.cfi_def_cfa 7, 8
    210 	ret
    211 	.cfi_endproc
    212 .LFE2:
    213 	.size	main, .-main
    214 	.comm	foo_,16,16
    215 	.comm	fo_o_,16,16
    216 	.section	.rodata
    217 	.align 32
    218 	.type	options.0.1570, @object
    219 	.size	options.0.1570, 32
    220 options.0.1570:
    221 	.long	68
    222 	.long	511
    223 	.long	0
    224 	.long	0
    225 	.long	0
    226 	.long	1
    227 	.long	0
    228 	.long	1
    229 	.align 4
    230 .LC0:
    231 	.long	1102053376
    232 	.align 8
    233 .LC1:
    234 	.long	0
    235 	.long	1077968896
    236 	.align 4
    237 .LC2:
    238 	.long	1073741824
    239 	.align 8
    240 .LC3:
    241 	.long	0
    242 	.long	1074266112
    243 	.text
    244 .Letext0:
    245 	.section	.debug_info,"",@progbits
    246 .Ldebug_info0:
    247 #if 0
    248 	.long	0x247	# Length of Compilation Unit Info
    249 #else
    250 	.long	.Ldebuginfo_end - .Ldebug_info1	# Length of Compilation Unit Info
    251 .Ldebug_info1:
    252 #endif
    253 	.value	0x4	# DWARF version number
    254 	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
    255 	.byte	0x8	# Pointer Size (in bytes)
    256 	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
    257 	.long	.LASF13	# DW_AT_producer: "GNU Fortran 4.6.3 plus hand hackery"
    258 	.byte	0xe	# DW_AT_language
    259 	.byte	0x2	# DW_AT_identifier_case
    260 	.long	.LASF14	# DW_AT_name: "../gdb.fortran/common-block.f90"
    261 	.long	.LASF15	# DW_AT_comp_dir: "gdb.dwarf2"
    262 	.quad	.Ltext0	# DW_AT_low_pc
    263 	.quad	.Letext0	# DW_AT_high_pc
    264 	.long	.Ldebug_line0	# DW_AT_stmt_list
    265 	.uleb128 0x2	# (DIE (0x2e) DW_TAG_subprogram)
    266 			# DW_AT_external
    267 	.ascii "in\0"	# DW_AT_name
    268 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    269 	.byte	0x15	# DW_AT_decl_line
    270 	.ascii "in_\0"	# DW_AT_linkage_name
    271 	.quad	.LFB0	# DW_AT_low_pc
    272 	.quad	.LFE0	# DW_AT_high_pc
    273 	.uleb128 0x1	# DW_AT_frame_base
    274 	.byte	0x9c	# DW_OP_call_frame_cfa
    275 			# DW_AT_GNU_all_tail_call_sites
    276 	.long	0x11a	# DW_AT_sibling
    277 	.uleb128 0x3	# (DIE (0x4e) DW_TAG_common_block)
    278 	.long	.LASF0	# DW_AT_name: "fo_o"
    279 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    280 	.byte	0x1f	# DW_AT_decl_line
    281 	.long	.LASF8	# DW_AT_linkage_name: "fo_o_"
    282 	.uleb128 0x9	# DW_AT_location
    283 	.byte	0x3	# DW_OP_addr
    284 	.quad	fo_o_
    285 	.long	0xa5	# DW_AT_sibling
    286 #if 0
    287 	.uleb128 0x4	# (DIE (0x67) DW_TAG_variable)
    288 #else
    289 	.uleb128 0x10	# (DIE (0x1bb) DW_TAG_variable)
    290 #endif
    291 	.ascii "ix\0"	# DW_AT_name
    292 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    293 	.byte	0x17	# DW_AT_decl_line
    294 	.long	0x11a	# DW_AT_type
    295 			# DW_AT_external
    296 #if 0
    297 	.uleb128 0x9	# DW_AT_location
    298 	.byte	0x3	# DW_OP_addr
    299 	.quad	fo_o_
    300 #else
    301 	.uleb128 0x9	# DW_AT_data_member_location
    302 			# (size chosen to avoid renumbering all DIEs)
    303 	.byte	0x8	# DW_OP_const1u
    304 	.byte	0x0
    305 	.byte	0x96	# DW_OP_nop
    306 	.byte	0x96	# DW_OP_nop
    307 	.byte	0x96	# DW_OP_nop
    308 	.byte	0x96	# DW_OP_nop
    309 	.byte	0x96	# DW_OP_nop
    310 	.byte	0x96	# DW_OP_nop
    311 	.byte	0x96	# DW_OP_nop
    312 #endif
    313 	.uleb128 0x4	# (DIE (0x7b) DW_TAG_variable)
    314 	.ascii "iy2\0"	# DW_AT_name
    315 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    316 	.byte	0x18	# DW_AT_decl_line
    317 	.long	0x121	# DW_AT_type
    318 			# DW_AT_external
    319 	.uleb128 0x9	# DW_AT_location
    320 	.byte	0x3	# DW_OP_addr
    321 	.quad	fo_o_+4
    322 	.uleb128 0x4	# (DIE (0x90) DW_TAG_variable)
    323 	.ascii "iz\0"	# DW_AT_name
    324 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    325 	.byte	0x19	# DW_AT_decl_line
    326 	.long	0x128	# DW_AT_type
    327 			# DW_AT_external
    328 	.uleb128 0x9	# DW_AT_location
    329 	.byte	0x3	# DW_OP_addr
    330 	.quad	fo_o_+8
    331 	.byte	0	# end of children of DIE 0x4e
    332 	.uleb128 0x5	# (DIE (0xa5) DW_TAG_common_block)
    333 	.ascii "foo\0"	# DW_AT_name
    334 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    335 	.byte	0x20	# DW_AT_decl_line
    336 	.long	.LASF16	# DW_AT_linkage_name: "foo_"
    337 	.uleb128 0x9	# DW_AT_location
    338 	.byte	0x3	# DW_OP_addr
    339 	.quad	foo_
    340 	.long	0xfe	# DW_AT_sibling
    341 	.uleb128 0x6	# (DIE (0xbe) DW_TAG_variable)
    342 	.long	.LASF1	# DW_AT_name: "ix_x"
    343 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    344 	.byte	0x1b	# DW_AT_decl_line
    345 	.long	0x11a	# DW_AT_type
    346 			# DW_AT_external
    347 	.uleb128 0x9	# DW_AT_location
    348 	.byte	0x3	# DW_OP_addr
    349 	.quad	foo_
    350 	.uleb128 0x6	# (DIE (0xd3) DW_TAG_variable)
    351 	.long	.LASF2	# DW_AT_name: "iy_y"
    352 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    353 	.byte	0x1c	# DW_AT_decl_line
    354 	.long	0x121	# DW_AT_type
    355 			# DW_AT_external
    356 	.uleb128 0x9	# DW_AT_location
    357 	.byte	0x3	# DW_OP_addr
    358 	.quad	foo_+4
    359 	.uleb128 0x6	# (DIE (0xe8) DW_TAG_variable)
    360 	.long	.LASF3	# DW_AT_name: "iz_z2"
    361 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    362 	.byte	0x1d	# DW_AT_decl_line
    363 	.long	0x128	# DW_AT_type
    364 			# DW_AT_external
    365 	.uleb128 0x9	# DW_AT_location
    366 	.byte	0x3	# DW_OP_addr
    367 	.quad	foo_+8
    368 	.byte	0	# end of children of DIE 0xa5
    369 	.uleb128 0x7	# (DIE (0xfe) DW_TAG_variable)
    370 	.ascii "iy\0"	# DW_AT_name
    371 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    372 	.byte	0x22	# DW_AT_decl_line
    373 	.long	0x11a	# DW_AT_type
    374 	.uleb128 0x2	# DW_AT_location
    375 	.byte	0x91	# DW_OP_fbreg
    376 	.sleb128 -20
    377 	.uleb128 0x8	# (DIE (0x10b) DW_TAG_variable)
    378 	.long	.LASF4	# DW_AT_name: "iz_z"
    379 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    380 	.byte	0x23	# DW_AT_decl_line
    381 	.long	0x11a	# DW_AT_type
    382 	.uleb128 0x2	# DW_AT_location
    383 	.byte	0x91	# DW_OP_fbreg
    384 	.sleb128 -24
    385 	.byte	0	# end of children of DIE 0x2e
    386 	.uleb128 0x9	# (DIE (0x11a) DW_TAG_base_type)
    387 	.byte	0x4	# DW_AT_byte_size
    388 	.byte	0x5	# DW_AT_encoding
    389 	.long	.LASF5	# DW_AT_name: "integer(kind=4)"
    390 	.uleb128 0x9	# (DIE (0x121) DW_TAG_base_type)
    391 	.byte	0x4	# DW_AT_byte_size
    392 	.byte	0x4	# DW_AT_encoding
    393 	.long	.LASF6	# DW_AT_name: "real(kind=4)"
    394 	.uleb128 0x9	# (DIE (0x128) DW_TAG_base_type)
    395 	.byte	0x8	# DW_AT_byte_size
    396 	.byte	0x4	# DW_AT_encoding
    397 	.long	.LASF7	# DW_AT_name: "real(kind=8)"
    398 	.uleb128 0xa	# (DIE (0x12f) DW_TAG_subprogram)
    399 	.long	.LASF17	# DW_AT_name: "common_test"
    400 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    401 	.byte	0x2c	# DW_AT_decl_line
    402 	.quad	.LFB1	# DW_AT_low_pc
    403 	.quad	.LFE1	# DW_AT_high_pc
    404 	.uleb128 0x1	# DW_AT_frame_base
    405 	.byte	0x9c	# DW_OP_call_frame_cfa
    406 			# DW_AT_GNU_all_tail_call_sites
    407 			# DW_AT_main_subprogram
    408 	.byte	0x2	# DW_AT_calling_convention
    409 	.long	0x1f9	# DW_AT_sibling
    410 	.uleb128 0x3	# (DIE (0x14d) DW_TAG_common_block)
    411 	.long	.LASF0	# DW_AT_name: "fo_o"
    412 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    413 	.byte	0x1f	# DW_AT_decl_line
    414 	.long	.LASF8	# DW_AT_linkage_name: "fo_o_"
    415 	.uleb128 0x9	# DW_AT_location
    416 	.byte	0x3	# DW_OP_addr
    417 	.quad	fo_o_
    418 	.long	0x1a6	# DW_AT_sibling
    419 	.uleb128 0x6	# (DIE (0x166) DW_TAG_variable)
    420 	.long	.LASF1	# DW_AT_name: "ix_x"
    421 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    422 	.byte	0x32	# DW_AT_decl_line
    423 	.long	0x11a	# DW_AT_type
    424 			# DW_AT_external
    425 	.uleb128 0x9	# DW_AT_location
    426 	.byte	0x3	# DW_OP_addr
    427 	.quad	fo_o_
    428 	.uleb128 0x6	# (DIE (0x17b) DW_TAG_variable)
    429 	.long	.LASF2	# DW_AT_name: "iy_y"
    430 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    431 	.byte	0x33	# DW_AT_decl_line
    432 	.long	0x121	# DW_AT_type
    433 			# DW_AT_external
    434 	.uleb128 0x9	# DW_AT_location
    435 	.byte	0x3	# DW_OP_addr
    436 	.quad	fo_o_+4
    437 	.uleb128 0x6	# (DIE (0x190) DW_TAG_variable)
    438 	.long	.LASF4	# DW_AT_name: "iz_z"
    439 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    440 	.byte	0x34	# DW_AT_decl_line
    441 	.long	0x128	# DW_AT_type
    442 			# DW_AT_external
    443 	.uleb128 0x9	# DW_AT_location
    444 	.byte	0x3	# DW_OP_addr
    445 	.quad	fo_o_+8
    446 	.byte	0	# end of children of DIE 0x14d
    447 	.uleb128 0xb	# (DIE (0x1a6) DW_TAG_common_block)
    448 	.ascii "foo\0"	# DW_AT_name
    449 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    450 	.byte	0x20	# DW_AT_decl_line
    451 	.long	.LASF16	# DW_AT_linkage_name: "foo_"
    452 	.uleb128 0x9	# DW_AT_location
    453 	.byte	0x3	# DW_OP_addr
    454 	.quad	foo_
    455 #if 0
    456 	.uleb128 0x4	# (DIE (0x1bb) DW_TAG_variable)
    457 #else
    458 	.uleb128 0x10	# (DIE (0x1bb) DW_TAG_variable)
    459 #endif
    460 	.ascii "ix\0"	# DW_AT_name
    461 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    462 	.byte	0x2e	# DW_AT_decl_line
    463 	.long	0x11a	# DW_AT_type
    464 			# DW_AT_external
    465 #if 0
    466 	.uleb128 0x9	# DW_AT_location
    467 	.byte	0x3	# DW_OP_addr
    468 	.quad	foo_
    469 #else
    470 	.uleb128 0x9	# DW_AT_data_member_location
    471 			# (size chosen to avoid renumbering all DIEs)
    472 	.byte	0x8	# DW_OP_const1u
    473 	.byte	0x0
    474 	.byte	0x96	# DW_OP_nop
    475 	.byte	0x96	# DW_OP_nop
    476 	.byte	0x96	# DW_OP_nop
    477 	.byte	0x96	# DW_OP_nop
    478 	.byte	0x96	# DW_OP_nop
    479 	.byte	0x96	# DW_OP_nop
    480 	.byte	0x96	# DW_OP_nop
    481 #endif
    482 	.uleb128 0x4	# (DIE (0x1cf) DW_TAG_variable)
    483 	.ascii "iy\0"	# DW_AT_name
    484 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    485 	.byte	0x2f	# DW_AT_decl_line
    486 	.long	0x121	# DW_AT_type
    487 			# DW_AT_external
    488 	.uleb128 0x9	# DW_AT_location
    489 	.byte	0x3	# DW_OP_addr
    490 	.quad	foo_+4
    491 	.uleb128 0x4	# (DIE (0x1e3) DW_TAG_variable)
    492 	.ascii "iz\0"	# DW_AT_name
    493 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    494 	.byte	0x30	# DW_AT_decl_line
    495 	.long	0x128	# DW_AT_type
    496 			# DW_AT_external
    497 	.uleb128 0x9	# DW_AT_location
    498 	.byte	0x3	# DW_OP_addr
    499 	.quad	foo_+8
    500 	.byte	0	# end of children of DIE 0x1a6
    501 	.byte	0	# end of children of DIE 0x12f
    502 	.uleb128 0xc	# (DIE (0x1f9) DW_TAG_subprogram)
    503 			# DW_AT_external
    504 	.long	.LASF9	# DW_AT_name: "main"
    505 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    506 	.byte	0x43	# DW_AT_decl_line
    507 	.long	0x11a	# DW_AT_type
    508 	.quad	.LFB2	# DW_AT_low_pc
    509 	.quad	.LFE2	# DW_AT_high_pc
    510 	.uleb128 0x1	# DW_AT_frame_base
    511 	.byte	0x9c	# DW_OP_call_frame_cfa
    512 			# DW_AT_GNU_all_tail_call_sites
    513 	.long	0x238	# DW_AT_sibling
    514 	.uleb128 0xd	# (DIE (0x21a) DW_TAG_formal_parameter)
    515 	.long	.LASF10	# DW_AT_name: "argc"
    516 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    517 	.byte	0x43	# DW_AT_decl_line
    518 	.long	0x238	# DW_AT_type
    519 	.uleb128 0x2	# DW_AT_location
    520 	.byte	0x91	# DW_OP_fbreg
    521 	.sleb128 -20
    522 	.uleb128 0xd	# (DIE (0x228) DW_TAG_formal_parameter)
    523 	.long	.LASF11	# DW_AT_name: "argv"
    524 	.byte	0x1	# DW_AT_decl_file (../gdb.fortran/common-block.f90)
    525 	.byte	0x43	# DW_AT_decl_line
    526 	.long	0x23d	# DW_AT_type
    527 	.uleb128 0x3	# DW_AT_location
    528 	.byte	0x91	# DW_OP_fbreg
    529 	.sleb128 -32
    530 	.byte	0x6	# DW_OP_deref
    531 	.byte	0	# end of children of DIE 0x1f9
    532 	.uleb128 0xe	# (DIE (0x238) DW_TAG_const_type)
    533 	.long	0x11a	# DW_AT_type
    534 	.uleb128 0xf	# (DIE (0x23d) DW_TAG_pointer_type)
    535 	.byte	0x8	# DW_AT_byte_size
    536 	.long	0x243	# DW_AT_type
    537 	.uleb128 0x9	# (DIE (0x243) DW_TAG_base_type)
    538 	.byte	0x1	# DW_AT_byte_size
    539 	.byte	0x8	# DW_AT_encoding
    540 	.long	.LASF12	# DW_AT_name: "character(kind=1)"
    541 	.byte	0	# end of children of DIE 0xb
    542 #if 0
    543 #else
    544 .Ldebuginfo_end:
    545 #endif
    546 	.section	.debug_abbrev,"",@progbits
    547 .Ldebug_abbrev0:
    548 	.uleb128 0x1	# (abbrev code)
    549 	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
    550 	.byte	0x1	# DW_children_yes
    551 	.uleb128 0x25	# (DW_AT_producer)
    552 	.uleb128 0xe	# (DW_FORM_strp)
    553 	.uleb128 0x13	# (DW_AT_language)
    554 	.uleb128 0xb	# (DW_FORM_data1)
    555 	.uleb128 0x42	# (DW_AT_identifier_case)
    556 	.uleb128 0xb	# (DW_FORM_data1)
    557 	.uleb128 0x3	# (DW_AT_name)
    558 	.uleb128 0xe	# (DW_FORM_strp)
    559 	.uleb128 0x1b	# (DW_AT_comp_dir)
    560 	.uleb128 0xe	# (DW_FORM_strp)
    561 	.uleb128 0x11	# (DW_AT_low_pc)
    562 	.uleb128 0x1	# (DW_FORM_addr)
    563 	.uleb128 0x12	# (DW_AT_high_pc)
    564 	.uleb128 0x1	# (DW_FORM_addr)
    565 	.uleb128 0x10	# (DW_AT_stmt_list)
    566 	.uleb128 0x17	# (DW_FORM_sec_offset)
    567 	.byte	0
    568 	.byte	0
    569 	.uleb128 0x2	# (abbrev code)
    570 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
    571 	.byte	0x1	# DW_children_yes
    572 	.uleb128 0x3f	# (DW_AT_external)
    573 	.uleb128 0x19	# (DW_FORM_flag_present)
    574 	.uleb128 0x3	# (DW_AT_name)
    575 	.uleb128 0x8	# (DW_FORM_string)
    576 	.uleb128 0x3a	# (DW_AT_decl_file)
    577 	.uleb128 0xb	# (DW_FORM_data1)
    578 	.uleb128 0x3b	# (DW_AT_decl_line)
    579 	.uleb128 0xb	# (DW_FORM_data1)
    580 	.uleb128 0x6e	# (DW_AT_linkage_name)
    581 	.uleb128 0x8	# (DW_FORM_string)
    582 	.uleb128 0x11	# (DW_AT_low_pc)
    583 	.uleb128 0x1	# (DW_FORM_addr)
    584 	.uleb128 0x12	# (DW_AT_high_pc)
    585 	.uleb128 0x1	# (DW_FORM_addr)
    586 	.uleb128 0x40	# (DW_AT_frame_base)
    587 	.uleb128 0x18	# (DW_FORM_exprloc)
    588 	.uleb128 0x2116	# (DW_AT_GNU_all_tail_call_sites)
    589 	.uleb128 0x19	# (DW_FORM_flag_present)
    590 	.uleb128 0x1	# (DW_AT_sibling)
    591 	.uleb128 0x13	# (DW_FORM_ref4)
    592 	.byte	0
    593 	.byte	0
    594 	.uleb128 0x3	# (abbrev code)
    595 	.uleb128 0x1a	# (TAG: DW_TAG_common_block)
    596 	.byte	0x1	# DW_children_yes
    597 	.uleb128 0x3	# (DW_AT_name)
    598 	.uleb128 0xe	# (DW_FORM_strp)
    599 	.uleb128 0x3a	# (DW_AT_decl_file)
    600 	.uleb128 0xb	# (DW_FORM_data1)
    601 	.uleb128 0x3b	# (DW_AT_decl_line)
    602 	.uleb128 0xb	# (DW_FORM_data1)
    603 	.uleb128 0x6e	# (DW_AT_linkage_name)
    604 	.uleb128 0xe	# (DW_FORM_strp)
    605 	.uleb128 0x2	# (DW_AT_location)
    606 	.uleb128 0x18	# (DW_FORM_exprloc)
    607 	.uleb128 0x1	# (DW_AT_sibling)
    608 	.uleb128 0x13	# (DW_FORM_ref4)
    609 	.byte	0
    610 	.byte	0
    611 	.uleb128 0x4	# (abbrev code)
    612 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    613 	.byte	0	# DW_children_no
    614 	.uleb128 0x3	# (DW_AT_name)
    615 	.uleb128 0x8	# (DW_FORM_string)
    616 	.uleb128 0x3a	# (DW_AT_decl_file)
    617 	.uleb128 0xb	# (DW_FORM_data1)
    618 	.uleb128 0x3b	# (DW_AT_decl_line)
    619 	.uleb128 0xb	# (DW_FORM_data1)
    620 	.uleb128 0x49	# (DW_AT_type)
    621 	.uleb128 0x13	# (DW_FORM_ref4)
    622 	.uleb128 0x3f	# (DW_AT_external)
    623 	.uleb128 0x19	# (DW_FORM_flag_present)
    624 	.uleb128 0x2	# (DW_AT_location)
    625 	.uleb128 0x18	# (DW_FORM_exprloc)
    626 	.byte	0
    627 	.byte	0
    628 	.uleb128 0x5	# (abbrev code)
    629 	.uleb128 0x1a	# (TAG: DW_TAG_common_block)
    630 	.byte	0x1	# DW_children_yes
    631 	.uleb128 0x3	# (DW_AT_name)
    632 	.uleb128 0x8	# (DW_FORM_string)
    633 	.uleb128 0x3a	# (DW_AT_decl_file)
    634 	.uleb128 0xb	# (DW_FORM_data1)
    635 	.uleb128 0x3b	# (DW_AT_decl_line)
    636 	.uleb128 0xb	# (DW_FORM_data1)
    637 	.uleb128 0x6e	# (DW_AT_linkage_name)
    638 	.uleb128 0xe	# (DW_FORM_strp)
    639 	.uleb128 0x2	# (DW_AT_location)
    640 	.uleb128 0x18	# (DW_FORM_exprloc)
    641 	.uleb128 0x1	# (DW_AT_sibling)
    642 	.uleb128 0x13	# (DW_FORM_ref4)
    643 	.byte	0
    644 	.byte	0
    645 	.uleb128 0x6	# (abbrev code)
    646 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    647 	.byte	0	# DW_children_no
    648 	.uleb128 0x3	# (DW_AT_name)
    649 	.uleb128 0xe	# (DW_FORM_strp)
    650 	.uleb128 0x3a	# (DW_AT_decl_file)
    651 	.uleb128 0xb	# (DW_FORM_data1)
    652 	.uleb128 0x3b	# (DW_AT_decl_line)
    653 	.uleb128 0xb	# (DW_FORM_data1)
    654 	.uleb128 0x49	# (DW_AT_type)
    655 	.uleb128 0x13	# (DW_FORM_ref4)
    656 	.uleb128 0x3f	# (DW_AT_external)
    657 	.uleb128 0x19	# (DW_FORM_flag_present)
    658 	.uleb128 0x2	# (DW_AT_location)
    659 	.uleb128 0x18	# (DW_FORM_exprloc)
    660 	.byte	0
    661 	.byte	0
    662 	.uleb128 0x7	# (abbrev code)
    663 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    664 	.byte	0	# DW_children_no
    665 	.uleb128 0x3	# (DW_AT_name)
    666 	.uleb128 0x8	# (DW_FORM_string)
    667 	.uleb128 0x3a	# (DW_AT_decl_file)
    668 	.uleb128 0xb	# (DW_FORM_data1)
    669 	.uleb128 0x3b	# (DW_AT_decl_line)
    670 	.uleb128 0xb	# (DW_FORM_data1)
    671 	.uleb128 0x49	# (DW_AT_type)
    672 	.uleb128 0x13	# (DW_FORM_ref4)
    673 	.uleb128 0x2	# (DW_AT_location)
    674 	.uleb128 0x18	# (DW_FORM_exprloc)
    675 	.byte	0
    676 	.byte	0
    677 	.uleb128 0x8	# (abbrev code)
    678 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    679 	.byte	0	# DW_children_no
    680 	.uleb128 0x3	# (DW_AT_name)
    681 	.uleb128 0xe	# (DW_FORM_strp)
    682 	.uleb128 0x3a	# (DW_AT_decl_file)
    683 	.uleb128 0xb	# (DW_FORM_data1)
    684 	.uleb128 0x3b	# (DW_AT_decl_line)
    685 	.uleb128 0xb	# (DW_FORM_data1)
    686 	.uleb128 0x49	# (DW_AT_type)
    687 	.uleb128 0x13	# (DW_FORM_ref4)
    688 	.uleb128 0x2	# (DW_AT_location)
    689 	.uleb128 0x18	# (DW_FORM_exprloc)
    690 	.byte	0
    691 	.byte	0
    692 	.uleb128 0x9	# (abbrev code)
    693 	.uleb128 0x24	# (TAG: DW_TAG_base_type)
    694 	.byte	0	# DW_children_no
    695 	.uleb128 0xb	# (DW_AT_byte_size)
    696 	.uleb128 0xb	# (DW_FORM_data1)
    697 	.uleb128 0x3e	# (DW_AT_encoding)
    698 	.uleb128 0xb	# (DW_FORM_data1)
    699 	.uleb128 0x3	# (DW_AT_name)
    700 	.uleb128 0xe	# (DW_FORM_strp)
    701 	.byte	0
    702 	.byte	0
    703 	.uleb128 0xa	# (abbrev code)
    704 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
    705 	.byte	0x1	# DW_children_yes
    706 	.uleb128 0x3	# (DW_AT_name)
    707 	.uleb128 0xe	# (DW_FORM_strp)
    708 	.uleb128 0x3a	# (DW_AT_decl_file)
    709 	.uleb128 0xb	# (DW_FORM_data1)
    710 	.uleb128 0x3b	# (DW_AT_decl_line)
    711 	.uleb128 0xb	# (DW_FORM_data1)
    712 	.uleb128 0x11	# (DW_AT_low_pc)
    713 	.uleb128 0x1	# (DW_FORM_addr)
    714 	.uleb128 0x12	# (DW_AT_high_pc)
    715 	.uleb128 0x1	# (DW_FORM_addr)
    716 	.uleb128 0x40	# (DW_AT_frame_base)
    717 	.uleb128 0x18	# (DW_FORM_exprloc)
    718 	.uleb128 0x2116	# (DW_AT_GNU_all_tail_call_sites)
    719 	.uleb128 0x19	# (DW_FORM_flag_present)
    720 	.uleb128 0x6a	# (DW_AT_main_subprogram)
    721 	.uleb128 0x19	# (DW_FORM_flag_present)
    722 	.uleb128 0x36	# (DW_AT_calling_convention)
    723 	.uleb128 0xb	# (DW_FORM_data1)
    724 	.uleb128 0x1	# (DW_AT_sibling)
    725 	.uleb128 0x13	# (DW_FORM_ref4)
    726 	.byte	0
    727 	.byte	0
    728 	.uleb128 0xb	# (abbrev code)
    729 	.uleb128 0x1a	# (TAG: DW_TAG_common_block)
    730 	.byte	0x1	# DW_children_yes
    731 	.uleb128 0x3	# (DW_AT_name)
    732 	.uleb128 0x8	# (DW_FORM_string)
    733 	.uleb128 0x3a	# (DW_AT_decl_file)
    734 	.uleb128 0xb	# (DW_FORM_data1)
    735 	.uleb128 0x3b	# (DW_AT_decl_line)
    736 	.uleb128 0xb	# (DW_FORM_data1)
    737 	.uleb128 0x6e	# (DW_AT_linkage_name)
    738 	.uleb128 0xe	# (DW_FORM_strp)
    739 	.uleb128 0x2	# (DW_AT_location)
    740 	.uleb128 0x18	# (DW_FORM_exprloc)
    741 	.byte	0
    742 	.byte	0
    743 	.uleb128 0xc	# (abbrev code)
    744 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
    745 	.byte	0x1	# DW_children_yes
    746 	.uleb128 0x3f	# (DW_AT_external)
    747 	.uleb128 0x19	# (DW_FORM_flag_present)
    748 	.uleb128 0x3	# (DW_AT_name)
    749 	.uleb128 0xe	# (DW_FORM_strp)
    750 	.uleb128 0x3a	# (DW_AT_decl_file)
    751 	.uleb128 0xb	# (DW_FORM_data1)
    752 	.uleb128 0x3b	# (DW_AT_decl_line)
    753 	.uleb128 0xb	# (DW_FORM_data1)
    754 	.uleb128 0x49	# (DW_AT_type)
    755 	.uleb128 0x13	# (DW_FORM_ref4)
    756 	.uleb128 0x11	# (DW_AT_low_pc)
    757 	.uleb128 0x1	# (DW_FORM_addr)
    758 	.uleb128 0x12	# (DW_AT_high_pc)
    759 	.uleb128 0x1	# (DW_FORM_addr)
    760 	.uleb128 0x40	# (DW_AT_frame_base)
    761 	.uleb128 0x18	# (DW_FORM_exprloc)
    762 	.uleb128 0x2116	# (DW_AT_GNU_all_tail_call_sites)
    763 	.uleb128 0x19	# (DW_FORM_flag_present)
    764 	.uleb128 0x1	# (DW_AT_sibling)
    765 	.uleb128 0x13	# (DW_FORM_ref4)
    766 	.byte	0
    767 	.byte	0
    768 	.uleb128 0xd	# (abbrev code)
    769 	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter)
    770 	.byte	0	# DW_children_no
    771 	.uleb128 0x3	# (DW_AT_name)
    772 	.uleb128 0xe	# (DW_FORM_strp)
    773 	.uleb128 0x3a	# (DW_AT_decl_file)
    774 	.uleb128 0xb	# (DW_FORM_data1)
    775 	.uleb128 0x3b	# (DW_AT_decl_line)
    776 	.uleb128 0xb	# (DW_FORM_data1)
    777 	.uleb128 0x49	# (DW_AT_type)
    778 	.uleb128 0x13	# (DW_FORM_ref4)
    779 	.uleb128 0x2	# (DW_AT_location)
    780 	.uleb128 0x18	# (DW_FORM_exprloc)
    781 	.byte	0
    782 	.byte	0
    783 	.uleb128 0xe	# (abbrev code)
    784 	.uleb128 0x26	# (TAG: DW_TAG_const_type)
    785 	.byte	0	# DW_children_no
    786 	.uleb128 0x49	# (DW_AT_type)
    787 	.uleb128 0x13	# (DW_FORM_ref4)
    788 	.byte	0
    789 	.byte	0
    790 	.uleb128 0xf	# (abbrev code)
    791 	.uleb128 0xf	# (TAG: DW_TAG_pointer_type)
    792 	.byte	0	# DW_children_no
    793 	.uleb128 0xb	# (DW_AT_byte_size)
    794 	.uleb128 0xb	# (DW_FORM_data1)
    795 	.uleb128 0x49	# (DW_AT_type)
    796 	.uleb128 0x13	# (DW_FORM_ref4)
    797 	.byte	0
    798 	.byte	0
    799 #if 0
    800 #else
    801 	.uleb128 0x10	# (abbrev code)
    802 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    803 	.byte	0	# DW_children_no
    804 	.uleb128 0x3	# (DW_AT_name)
    805 	.uleb128 0x8	# (DW_FORM_string)
    806 	.uleb128 0x3a	# (DW_AT_decl_file)
    807 	.uleb128 0xb	# (DW_FORM_data1)
    808 	.uleb128 0x3b	# (DW_AT_decl_line)
    809 	.uleb128 0xb	# (DW_FORM_data1)
    810 	.uleb128 0x49	# (DW_AT_type)
    811 	.uleb128 0x13	# (DW_FORM_ref4)
    812 	.uleb128 0x3f	# (DW_AT_external)
    813 	.uleb128 0x19	# (DW_FORM_flag_present)
    814 	.uleb128 0x38	# (DW_AT_data_member_location)
    815 	.uleb128 0x18	# (DW_FORM_exprloc)
    816 	.byte	0
    817 	.byte	0
    818 #endif
    819 	.byte	0
    820 	.section	.debug_aranges,"",@progbits
    821 	.long	0x2c	# Length of Address Ranges Info
    822 	.value	0x2	# DWARF Version
    823 	.long	.Ldebug_info0	# Offset of Compilation Unit Info
    824 	.byte	0x8	# Size of Address
    825 	.byte	0	# Size of Segment Descriptor
    826 	.value	0	# Pad to 16 byte boundary
    827 	.value	0
    828 	.quad	.Ltext0	# Address
    829 	.quad	.Letext0-.Ltext0	# Length
    830 	.quad	0
    831 	.quad	0
    832 	.section	.debug_line,"",@progbits
    833 .Ldebug_line0:
    834 	.section	.debug_str,"MS",@progbits,1
    835 .LASF0:
    836 	.string	"fo_o"
    837 .LASF8:
    838 	.string	"fo_o_"
    839 .LASF3:
    840 	.string	"iz_z2"
    841 .LASF1:
    842 	.string	"ix_x"
    843 .LASF9:
    844 	.string	"main"
    845 .LASF4:
    846 	.string	"iz_z"
    847 .LASF13:
    848 	.string	"GNU Fortran 4.6.3 plus hand hackery"
    849 .LASF16:
    850 	.string	"foo_"
    851 .LASF7:
    852 	.string	"real(kind=8)"
    853 .LASF5:
    854 	.string	"integer(kind=4)"
    855 .LASF17:
    856 	.string	"common_test"
    857 .LASF12:
    858 	.string	"character(kind=1)"
    859 .LASF14:
    860 	.string	"../gdb.fortran/common-block.f90"
    861 .LASF10:
    862 	.string	"argc"
    863 .LASF2:
    864 	.string	"iy_y"
    865 .LASF11:
    866 	.string	"argv"
    867 .LASF15:
    868 	.string	"gdb.dwarf2"
    869 .LASF6:
    870 	.string	"real(kind=4)"
    871 	.ident	"GCC: (GNU) 4.6.3 20120306 (Red Hat 4.6.3-2)"
    872 	.section	.note.GNU-stack,"",@progbits
    873