Jan Kratochvil 33d54d9
http://sourceware.org/ml/gdb-patches/2014-07/msg00277.html
Jan Kratochvil 33d54d9
Subject: [patchv3] Fix crash on optimized-out entry data values
Jan Kratochvil 2a0fd8a
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
--Dxnq1zWXvFF0Q93v
Jan Kratochvil 2a0fd8a
Content-Type: text/plain; charset=us-ascii
Jan Kratochvil 2a0fd8a
Content-Disposition: inline
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
On Wed, 09 Jul 2014 17:31:21 +0200, Jan Kratochvil wrote:
Jan Kratochvil 33d54d9
> On Wed, 09 Jul 2014 13:52:00 +0200, Pedro Alves wrote:
Jan Kratochvil 33d54d9
> > On 07/09/2014 11:33 AM, Jan Kratochvil wrote:
Jan Kratochvil 33d54d9
> > > --- a/gdb/value.c
Jan Kratochvil 33d54d9
> > > +++ b/gdb/value.c
Jan Kratochvil 33d54d9
> > > @@ -198,12 +198,13 @@ struct value
Jan Kratochvil 33d54d9
> > >    unsigned int lazy : 1;
Jan Kratochvil 33d54d9
> > >  
Jan Kratochvil 33d54d9
> > >    /* If nonzero, this is the value of a variable that does not
Jan Kratochvil 33d54d9
> > > -     actually exist in the program.  If nonzero, and LVAL is
Jan Kratochvil 33d54d9
> > > +     actually fully exist in the program.  If nonzero, and LVAL is
Jan Kratochvil 33d54d9
> > >       lval_register, this is a register ($pc, $sp, etc., never a
Jan Kratochvil 33d54d9
> > >       program variable) that has not been saved in the frame.  All
Jan Kratochvil 33d54d9
> > >       optimized-out values are treated pretty much the same, except
Jan Kratochvil 33d54d9
> > >       registers have a different string representation and related
Jan Kratochvil 33d54d9
> > > -     error strings.  */
Jan Kratochvil 33d54d9
> > > +     error strings.  It is true also for only partially optimized
Jan Kratochvil 33d54d9
> > > +     out variables - see the 'unavailable' field below.  */
Jan Kratochvil 33d54d9
> > >    unsigned int optimized_out : 1;
Jan Kratochvil 33d54d9
> > >  
Jan Kratochvil 33d54d9
> > >    /* If value is a variable, is it initialized or not.  */
Jan Kratochvil 33d54d9
> > > @@ -334,7 +335,10 @@ struct value
Jan Kratochvil 33d54d9
> > >       valid if lazy is nonzero.  */
Jan Kratochvil 33d54d9
> > >    gdb_byte *contents;
Jan Kratochvil 33d54d9
> > >  
Jan Kratochvil 33d54d9
> > > -  /* Unavailable ranges in CONTENTS.  We mark unavailable ranges,
Jan Kratochvil 33d54d9
> > > +  /* If OPTIMIZED_OUT is false then UNAVAILABLE must be VEC_empty
Jan Kratochvil 33d54d9
> > > +     (not necessarily NULL).  
Jan Kratochvil 33d54d9
> > 
Jan Kratochvil 33d54d9
> > Hmm, why?  We can collect only part of a non-optimized out value.
Jan Kratochvil 33d54d9
> > What am I missing?
Jan Kratochvil 33d54d9
> 
Jan Kratochvil 33d54d9
> I miss some documentation how these availability fields interact together.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
>From a comment in mail
Jan Kratochvil 33d54d9
	Message-Id: <201102071427.55970.pedro@codesourcery.com>
Jan Kratochvil 33d54d9
	We give preference to printing <optimized out> rather
Jan Kratochvil 33d54d9
	than <unavailable>, since if a value had been optimized out
Jan Kratochvil 33d54d9
	at compile time, it can never be collected at run-time.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
it seems it is just reversed, that 'unavailable' can exist only for
Jan Kratochvil 33d54d9
!optimized_out and it cannot exist for for optimized_out values.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
> You are right, this patch regresses during gdbserver mode.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
It PASSes now even in gdbserver mode.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
Jan Kratochvil 33d54d9
Thanks,
Jan Kratochvil 2a0fd8a
Jan
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
--Dxnq1zWXvFF0Q93v
Jan Kratochvil 2a0fd8a
Content-Type: text/plain; charset=us-ascii
Jan Kratochvil 33d54d9
Content-Disposition: inline; filename="optimfix3.patch"
Jan Kratochvil 2a0fd8a
Jan Kratochvil 2a0fd8a
gdb/
Jan Kratochvil 4f54fc4
2014-07-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
Jan Kratochvil 2a0fd8a
Jan Kratochvil a972d47
removed:
Jan Kratochvil 4f54fc4
	* value.c (struct value): Extend the comment for fields optimized_out
Jan Kratochvil 4f54fc4
	and unavailable.
Jan Kratochvil 33d54d9
	(value_available_contents_bits_eq): Handle OPTIMIZED_OUT values as
Jan Kratochvil 33d54d9
	special cases.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 2a0fd8a
gdb/testsuite/
Jan Kratochvil 4f54fc4
2014-07-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
Jan Kratochvil 2a0fd8a
Jan Kratochvil 2a0fd8a
	* gdb.arch/amd64-entry-value-paramref.S: New file.
Jan Kratochvil 2a0fd8a
	* gdb.arch/amd64-entry-value-paramref.cc: New file.
Jan Kratochvil 2a0fd8a
	* gdb.arch/amd64-entry-value-paramref.exp: New file.
Jan Kratochvil 4f54fc4
	* gdb.arch/amd64-optimout-repeat.S: New file.
Jan Kratochvil 4f54fc4
	* gdb.arch/amd64-optimout-repeat.c: New file.
Jan Kratochvil 4f54fc4
	* gdb.arch/amd64-optimout-repeat.exp: New file.
Jan Kratochvil 2a0fd8a
Jan Kratochvil 2a0fd8a
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
Jan Kratochvil 2a0fd8a
new file mode 100644
Jan Kratochvil 4f54fc4
index 0000000..a1e9d0a
Jan Kratochvil 2a0fd8a
--- /dev/null
Jan Kratochvil 2a0fd8a
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
Jan Kratochvil 2a0fd8a
@@ -0,0 +1,459 @@
Jan Kratochvil 2a0fd8a
+/* This testcase is part of GDB, the GNU debugger.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   Copyright 2014 Free Software Foundation, Inc.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   This program is free software; you can redistribute it and/or modify
Jan Kratochvil 2a0fd8a
+   it under the terms of the GNU General Public License as published by
Jan Kratochvil 2a0fd8a
+   the Free Software Foundation; either version 3 of the License, or
Jan Kratochvil 2a0fd8a
+   (at your option) any later version.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   This program is distributed in the hope that it will be useful,
Jan Kratochvil 2a0fd8a
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
Jan Kratochvil 2a0fd8a
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Jan Kratochvil 2a0fd8a
+   GNU General Public License for more details.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   You should have received a copy of the GNU General Public License
Jan Kratochvil 2a0fd8a
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+/* This file is compiled from gdb.arch/amd64-entry-value-paramref.cc
Jan Kratochvil 2a0fd8a
+   using -g -dA -S -O2.
Jan Kratochvil 2a0fd8a
+   Additionally it has been patched.  */
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+	.file	"amd64-entry-value-paramref.cc"
Jan Kratochvil 2a0fd8a
+	.text
Jan Kratochvil 2a0fd8a
+.Ltext0:
Jan Kratochvil 2a0fd8a
+	.p2align 4,,15
Jan Kratochvil 2a0fd8a
+	.type	_ZL3barRi.constprop.0, @function
Jan Kratochvil 2a0fd8a
+_ZL3barRi.constprop.0:
Jan Kratochvil 2a0fd8a
+.LFB2:
Jan Kratochvil 2a0fd8a
+	.file 1 "gdb.arch/amd64-entry-value-paramref.cc"
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:21
Jan Kratochvil 2a0fd8a
+	.loc 1 21 0
Jan Kratochvil 2a0fd8a
+	.cfi_startproc
Jan Kratochvil 2a0fd8a
+.LVL0:
Jan Kratochvil 2a0fd8a
+# BLOCK 2 freq:10000 seq:0
Jan Kratochvil 2a0fd8a
+# PRED: ENTRY [100.0%]  (FALLTHRU)
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:23
Jan Kratochvil 2a0fd8a
+	.loc 1 23 0
Jan Kratochvil 2a0fd8a
+	movl	vv(%rip), %eax
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:24
Jan Kratochvil 2a0fd8a
+	.loc 1 24 0
Jan Kratochvil 2a0fd8a
+	movq	%rdi, p(%rip)
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:23
Jan Kratochvil 2a0fd8a
+	.loc 1 23 0
Jan Kratochvil 2a0fd8a
+	addl	$1, %eax
Jan Kratochvil 2a0fd8a
+	movl	%eax, vv(%rip)
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:25
Jan Kratochvil 2a0fd8a
+	.loc 1 25 0
Jan Kratochvil 2a0fd8a
+	movl	(%rdi), %eax
Jan Kratochvil 2a0fd8a
+# SUCC: EXIT [100.0%] 
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:26
Jan Kratochvil 2a0fd8a
+	.loc 1 26 0
Jan Kratochvil 2a0fd8a
+	ret
Jan Kratochvil 2a0fd8a
+	.cfi_endproc
Jan Kratochvil 2a0fd8a
+.LFE2:
Jan Kratochvil 2a0fd8a
+	.size	_ZL3barRi.constprop.0, .-_ZL3barRi.constprop.0
Jan Kratochvil 2a0fd8a
+	.section	.text.startup,"ax",@progbits
Jan Kratochvil 2a0fd8a
+	.p2align 4,,15
Jan Kratochvil 2a0fd8a
+	.globl	main
Jan Kratochvil 2a0fd8a
+	.type	main, @function
Jan Kratochvil 2a0fd8a
+main:
Jan Kratochvil 2a0fd8a
+.LFB1:
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:30
Jan Kratochvil 2a0fd8a
+	.loc 1 30 0
Jan Kratochvil 2a0fd8a
+	.cfi_startproc
Jan Kratochvil 2a0fd8a
+# BLOCK 2 freq:10000 seq:0
Jan Kratochvil 2a0fd8a
+# PRED: ENTRY [100.0%]  (FALLTHRU)
Jan Kratochvil 2a0fd8a
+	subq	$16, %rsp
Jan Kratochvil 2a0fd8a
+	.cfi_def_cfa_offset 24
Jan Kratochvil 2a0fd8a
+.LBB2:
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:32
Jan Kratochvil 2a0fd8a
+	.loc 1 32 0
Jan Kratochvil 2a0fd8a
+	leaq	12(%rsp), %rdi
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:31
Jan Kratochvil 2a0fd8a
+	.loc 1 31 0
Jan Kratochvil 2a0fd8a
+	movl	$10, 12(%rsp)
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:32
Jan Kratochvil 2a0fd8a
+	.loc 1 32 0
Jan Kratochvil 2a0fd8a
+	call	_ZL3barRi.constprop.0
Jan Kratochvil 2a0fd8a
+.LVL1:
Jan Kratochvil 2a0fd8a
+.LBE2:
Jan Kratochvil 2a0fd8a
+	# gdb.arch/amd64-entry-value-paramref.cc:33
Jan Kratochvil 2a0fd8a
+	.loc 1 33 0
Jan Kratochvil 2a0fd8a
+	addq	$16, %rsp
Jan Kratochvil 2a0fd8a
+	.cfi_def_cfa_offset 8
Jan Kratochvil 2a0fd8a
+# SUCC: EXIT [100.0%] 
Jan Kratochvil 2a0fd8a
+	ret
Jan Kratochvil 2a0fd8a
+	.cfi_endproc
Jan Kratochvil 2a0fd8a
+.LFE1:
Jan Kratochvil 2a0fd8a
+	.size	main, .-main
Jan Kratochvil 2a0fd8a
+	.globl	p
Jan Kratochvil 2a0fd8a
+	.bss
Jan Kratochvil 2a0fd8a
+	.align 8
Jan Kratochvil 2a0fd8a
+	.type	p, @object
Jan Kratochvil 2a0fd8a
+	.size	p, 8
Jan Kratochvil 2a0fd8a
+p:
Jan Kratochvil 2a0fd8a
+	.zero	8
Jan Kratochvil 2a0fd8a
+	.globl	vv
Jan Kratochvil 2a0fd8a
+	.align 4
Jan Kratochvil 2a0fd8a
+	.type	vv, @object
Jan Kratochvil 2a0fd8a
+	.size	vv, 4
Jan Kratochvil 2a0fd8a
+vv:
Jan Kratochvil 2a0fd8a
+	.zero	4
Jan Kratochvil 2a0fd8a
+	.text
Jan Kratochvil 2a0fd8a
+.Letext0:
Jan Kratochvil 2a0fd8a
+	.section	.debug_info,"",@progbits
Jan Kratochvil 2a0fd8a
+.Ldebug_info0:
Jan Kratochvil 2a0fd8a
+	.long	.Linfo_end - .Linfo_start	# Length of Compilation Unit Info
Jan Kratochvil 2a0fd8a
+.Linfo_start:
Jan Kratochvil 2a0fd8a
+	.value	0x4	# DWARF version number
Jan Kratochvil 2a0fd8a
+	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
Jan Kratochvil 2a0fd8a
+	.byte	0x8	# Pointer Size (in bytes)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
Jan Kratochvil 2a0fd8a
+	.long	.LASF0	# DW_AT_producer: "GNU C++ 4.8.2 20131212 (Red Hat 4.8.2-7) -mtune=generic -march=x86-64 -g -O2"
Jan Kratochvil 2a0fd8a
+	.byte	0x4	# DW_AT_language
Jan Kratochvil 2a0fd8a
+	.long	.LASF1	# DW_AT_name: "gdb.arch/amd64-entry-value-paramref.cc"
Jan Kratochvil 2a0fd8a
+	.long	.LASF2	# DW_AT_comp_dir: ""
Jan Kratochvil 2a0fd8a
+	.long	.Ldebug_ranges0+0	# DW_AT_ranges
Jan Kratochvil 2a0fd8a
+	.quad	0	# DW_AT_low_pc
Jan Kratochvil 2a0fd8a
+	.long	.Ldebug_line0	# DW_AT_stmt_list
Jan Kratochvil 2a0fd8a
+DIE29:	.uleb128 0x2	# (DIE (0x29) DW_TAG_subprogram)
Jan Kratochvil 2a0fd8a
+	.ascii "bar\0"	# DW_AT_name
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
Jan Kratochvil 2a0fd8a
+	.byte	0x15	# DW_AT_decl_line
Jan Kratochvil 2a0fd8a
+	.long	DIE45	# DW_AT_type
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_inline
Jan Kratochvil 2a0fd8a
+DIE39:	.uleb128 0x3	# (DIE (0x39) DW_TAG_formal_parameter)
Jan Kratochvil 2a0fd8a
+	.ascii "ref\0"	# DW_AT_name
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
Jan Kratochvil 2a0fd8a
+	.byte	0x15	# DW_AT_decl_line
Jan Kratochvil 2a0fd8a
+	.long	DIE4c	# DW_AT_type
Jan Kratochvil 2a0fd8a
+	.byte	0	# end of children of DIE 0x29
Jan Kratochvil 2a0fd8a
+DIE45:	.uleb128 0x4	# (DIE (0x45) DW_TAG_base_type)
Jan Kratochvil 2a0fd8a
+	.byte	0x4	# DW_AT_byte_size
Jan Kratochvil 2a0fd8a
+	.byte	0x5	# DW_AT_encoding
Jan Kratochvil 2a0fd8a
+	.ascii "int\0"	# DW_AT_name
Jan Kratochvil 2a0fd8a
+DIE4c:	.uleb128 0x5	# (DIE (0x4c) DW_TAG_const_type)
Jan Kratochvil 2a0fd8a
+	.long	DIE51	# DW_AT_type
Jan Kratochvil 2a0fd8a
+DIE51:	.uleb128 0x6	# (DIE (0x51) DW_TAG_reference_type)
Jan Kratochvil 2a0fd8a
+	.byte	0x8	# DW_AT_byte_size
Jan Kratochvil 2a0fd8a
+	.long	DIE45	# DW_AT_type
Jan Kratochvil 2a0fd8a
+DIE57:	.uleb128 0x7	# (DIE (0x57) DW_TAG_subprogram)
Jan Kratochvil 2a0fd8a
+	.long	DIE29	# DW_AT_abstract_origin
Jan Kratochvil 2a0fd8a
+	.quad	.LFB2	# DW_AT_low_pc
Jan Kratochvil 2a0fd8a
+	.quad	.LFE2-.LFB2	# DW_AT_high_pc
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# DW_AT_frame_base
Jan Kratochvil 2a0fd8a
+	.byte	0x9c	# DW_OP_call_frame_cfa
Jan Kratochvil 2a0fd8a
+			# DW_AT_GNU_all_call_sites
Jan Kratochvil 2a0fd8a
+DIE72:	.uleb128 0x8	# (DIE (0x72) DW_TAG_formal_parameter)
Jan Kratochvil 2a0fd8a
+	.long	DIE39	# DW_AT_abstract_origin
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# DW_AT_location
Jan Kratochvil 2a0fd8a
+	.byte	0x55	# DW_OP_reg5
Jan Kratochvil 2a0fd8a
+	.byte	0	# end of children of DIE 0x57
Jan Kratochvil 2a0fd8a
+DIE7a:	.uleb128 0x9	# (DIE (0x7a) DW_TAG_subprogram)
Jan Kratochvil 2a0fd8a
+			# DW_AT_external
Jan Kratochvil 2a0fd8a
+	.long	.LASF3	# DW_AT_name: "main"
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
Jan Kratochvil 2a0fd8a
+	.byte	0x1d	# DW_AT_decl_line
Jan Kratochvil 2a0fd8a
+	.long	DIE45	# DW_AT_type
Jan Kratochvil 2a0fd8a
+	.quad	.LFB1	# DW_AT_low_pc
Jan Kratochvil 2a0fd8a
+	.quad	.LFE1-.LFB1	# DW_AT_high_pc
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# DW_AT_frame_base
Jan Kratochvil 2a0fd8a
+	.byte	0x9c	# DW_OP_call_frame_cfa
Jan Kratochvil 2a0fd8a
+			# DW_AT_GNU_all_call_sites
Jan Kratochvil 2a0fd8a
+DIE9b:	.uleb128 0xa	# (DIE (0x9b) DW_TAG_lexical_block)
Jan Kratochvil 2a0fd8a
+	.quad	.LBB2	# DW_AT_low_pc
Jan Kratochvil 2a0fd8a
+	.quad	.LBE2-.LBB2	# DW_AT_high_pc
Jan Kratochvil 2a0fd8a
+DIEac:	.uleb128 0xb	# (DIE (0xac) DW_TAG_variable)
Jan Kratochvil 2a0fd8a
+	.ascii "var\0"	# DW_AT_name
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
Jan Kratochvil 2a0fd8a
+	.byte	0x1f	# DW_AT_decl_line
Jan Kratochvil 2a0fd8a
+	.long	DIE45	# DW_AT_type
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# DW_AT_location
Jan Kratochvil 2a0fd8a
+	.byte	0x91	# DW_OP_fbreg
Jan Kratochvil 2a0fd8a
+	.sleb128 -12
Jan Kratochvil 2a0fd8a
+DIEba:	.uleb128 0xc	# (DIE (0xba) DW_TAG_GNU_call_site)
Jan Kratochvil 2a0fd8a
+	.quad	.LVL1	# DW_AT_low_pc
Jan Kratochvil 2a0fd8a
+	.long	DIE57	# DW_AT_abstract_origin
Jan Kratochvil 2a0fd8a
+DIEc7:	.uleb128 0xd	# (DIE (0xc7) DW_TAG_GNU_call_site_parameter)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# DW_AT_location
Jan Kratochvil 2a0fd8a
+	.byte	0x55	# DW_OP_reg5
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# DW_AT_GNU_call_site_value
Jan Kratochvil 2a0fd8a
+	.byte	0x91	# DW_OP_fbreg
Jan Kratochvil 2a0fd8a
+	.sleb128 -12
Jan Kratochvil 2a0fd8a
+#if 0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# DW_AT_GNU_call_site_data_value
Jan Kratochvil 2a0fd8a
+	.byte	0x3a	# DW_OP_lit10
Jan Kratochvil 2a0fd8a
+#else
Jan Kratochvil 2a0fd8a
+	.uleb128 1f - 2f	# DW_AT_GNU_call_site_data_value
Jan Kratochvil 2a0fd8a
+2:
Jan Kratochvil 2a0fd8a
+	.byte	0xf3	# DW_OP_GNU_entry_value
Jan Kratochvil 2a0fd8a
+	.uleb128 1f - 3f
Jan Kratochvil 2a0fd8a
+3:
Jan Kratochvil 2a0fd8a
+	.byte	0x55	# DW_OP_reg5
Jan Kratochvil 2a0fd8a
+1:
Jan Kratochvil 2a0fd8a
+#endif
Jan Kratochvil 2a0fd8a
+	.byte	0	# end of children of DIE 0xba
Jan Kratochvil 2a0fd8a
+	.byte	0	# end of children of DIE 0x9b
Jan Kratochvil 2a0fd8a
+	.byte	0	# end of children of DIE 0x7a
Jan Kratochvil 2a0fd8a
+DIEd2:	.uleb128 0xe	# (DIE (0xd2) DW_TAG_variable)
Jan Kratochvil 2a0fd8a
+	.ascii "vv\0"	# DW_AT_name
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
Jan Kratochvil 2a0fd8a
+	.byte	0x12	# DW_AT_decl_line
Jan Kratochvil 2a0fd8a
+	.long	DIEe6	# DW_AT_type
Jan Kratochvil 2a0fd8a
+			# DW_AT_external
Jan Kratochvil 2a0fd8a
+	.uleb128 0x9	# DW_AT_location
Jan Kratochvil 2a0fd8a
+	.byte	0x3	# DW_OP_addr
Jan Kratochvil 2a0fd8a
+	.quad	vv
Jan Kratochvil 2a0fd8a
+DIEe6:	.uleb128 0xf	# (DIE (0xe6) DW_TAG_volatile_type)
Jan Kratochvil 2a0fd8a
+	.long	DIE45	# DW_AT_type
Jan Kratochvil 2a0fd8a
+DIEeb:	.uleb128 0xe	# (DIE (0xeb) DW_TAG_variable)
Jan Kratochvil 2a0fd8a
+	.ascii "p\0"	# DW_AT_name
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
Jan Kratochvil 2a0fd8a
+	.byte	0x12	# DW_AT_decl_line
Jan Kratochvil 2a0fd8a
+	.long	DIEfe	# DW_AT_type
Jan Kratochvil 2a0fd8a
+			# DW_AT_external
Jan Kratochvil 2a0fd8a
+	.uleb128 0x9	# DW_AT_location
Jan Kratochvil 2a0fd8a
+	.byte	0x3	# DW_OP_addr
Jan Kratochvil 2a0fd8a
+	.quad	p
Jan Kratochvil 2a0fd8a
+DIEfe:	.uleb128 0x10	# (DIE (0xfe) DW_TAG_pointer_type)
Jan Kratochvil 2a0fd8a
+	.byte	0x8	# DW_AT_byte_size
Jan Kratochvil 2a0fd8a
+	.long	DIEe6	# DW_AT_type
Jan Kratochvil 2a0fd8a
+	.byte	0	# end of children of DIE 0xb
Jan Kratochvil 2a0fd8a
+.Linfo_end:
Jan Kratochvil 2a0fd8a
+	.section	.debug_abbrev,"",@progbits
Jan Kratochvil 2a0fd8a
+.Ldebug_abbrev0:
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 2a0fd8a
+	.uleb128 0x25	# (DW_AT_producer)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_AT_language)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1b	# (DW_AT_comp_dir)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x55	# (DW_AT_ranges)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x17	# (DW_FORM_sec_offset)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x10	# (DW_AT_stmt_list)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x17	# (DW_FORM_sec_offset)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x20	# (DW_AT_inline)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x4	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x24	# (TAG: DW_TAG_base_type)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_AT_byte_size)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3e	# (DW_AT_encoding)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x5	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x26	# (TAG: DW_TAG_const_type)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x6	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x10	# (TAG: DW_TAG_reference_type)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_AT_byte_size)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x7	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 2a0fd8a
+	.uleb128 0x31	# (DW_AT_abstract_origin)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x12	# (DW_AT_high_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x7	# (DW_FORM_data8)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x40	# (DW_AT_frame_base)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x8	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x31	# (DW_AT_abstract_origin)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# (DW_AT_location)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x9	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3f	# (DW_AT_external)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x12	# (DW_AT_high_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x7	# (DW_FORM_data8)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x40	# (DW_AT_frame_base)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0xa	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (TAG: DW_TAG_lexical_block)
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 2a0fd8a
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x12	# (DW_AT_high_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x7	# (DW_FORM_data8)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x34	# (TAG: DW_TAG_variable)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# (DW_AT_location)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0xc	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x4109	# (TAG: DW_TAG_GNU_call_site)
Jan Kratochvil 2a0fd8a
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 2a0fd8a
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x31	# (DW_AT_abstract_origin)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0xd	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x410a	# (TAG: DW_TAG_GNU_call_site_parameter)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# (DW_AT_location)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2111	# (DW_AT_GNU_call_site_value)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2112	# (DW_AT_GNU_call_site_data_value)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0xe	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x34	# (TAG: DW_TAG_variable)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x3f	# (DW_AT_external)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x2	# (DW_AT_location)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0xf	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x35	# (TAG: DW_TAG_volatile_type)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.uleb128 0x10	# (abbrev code)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xf	# (TAG: DW_TAG_pointer_type)
Jan Kratochvil 2a0fd8a
+	.byte	0	# DW_children_no
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_AT_byte_size)
Jan Kratochvil 2a0fd8a
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 2a0fd8a
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.byte	0
Jan Kratochvil 2a0fd8a
+	.section	.debug_aranges,"",@progbits
Jan Kratochvil 2a0fd8a
+	.long	0x3c	# Length of Address Ranges Info
Jan Kratochvil 2a0fd8a
+	.value	0x2	# DWARF Version
Jan Kratochvil 2a0fd8a
+	.long	.Ldebug_info0	# Offset of Compilation Unit Info
Jan Kratochvil 2a0fd8a
+	.byte	0x8	# Size of Address
Jan Kratochvil 2a0fd8a
+	.byte	0	# Size of Segment Descriptor
Jan Kratochvil 2a0fd8a
+	.value	0	# Pad to 16 byte boundary
Jan Kratochvil 2a0fd8a
+	.value	0
Jan Kratochvil 2a0fd8a
+	.quad	.Ltext0	# Address
Jan Kratochvil 2a0fd8a
+	.quad	.Letext0-.Ltext0	# Length
Jan Kratochvil 2a0fd8a
+	.quad	.LFB1	# Address
Jan Kratochvil 2a0fd8a
+	.quad	.LFE1-.LFB1	# Length
Jan Kratochvil 2a0fd8a
+	.quad	0
Jan Kratochvil 2a0fd8a
+	.quad	0
Jan Kratochvil 2a0fd8a
+	.section	.debug_ranges,"",@progbits
Jan Kratochvil 2a0fd8a
+.Ldebug_ranges0:
Jan Kratochvil 2a0fd8a
+	.quad	.Ltext0	# Offset 0
Jan Kratochvil 2a0fd8a
+	.quad	.Letext0
Jan Kratochvil 2a0fd8a
+	.quad	.LFB1	# Offset 0x10
Jan Kratochvil 2a0fd8a
+	.quad	.LFE1
Jan Kratochvil 2a0fd8a
+	.quad	0
Jan Kratochvil 2a0fd8a
+	.quad	0
Jan Kratochvil 2a0fd8a
+	.section	.debug_line,"",@progbits
Jan Kratochvil 2a0fd8a
+.Ldebug_line0:
Jan Kratochvil 2a0fd8a
+	.section	.debug_str,"MS",@progbits,1
Jan Kratochvil 2a0fd8a
+.LASF1:
Jan Kratochvil 2a0fd8a
+	.string	"gdb.arch/amd64-entry-value-paramref.cc"
Jan Kratochvil 2a0fd8a
+.LASF2:
Jan Kratochvil 2a0fd8a
+	.string	""
Jan Kratochvil 2a0fd8a
+.LASF0:
Jan Kratochvil 2a0fd8a
+	.string	"GNU C++ 4.8.2 20131212 (Red Hat 4.8.2-7) -mtune=generic -march=x86-64 -g -O2"
Jan Kratochvil 2a0fd8a
+.LASF3:
Jan Kratochvil 2a0fd8a
+	.string	"main"
Jan Kratochvil 2a0fd8a
+	.ident	"GCC: (GNU) 4.8.2 20131212 (Red Hat 4.8.2-7)"
Jan Kratochvil 2a0fd8a
+	.section	.note.GNU-stack,"",@progbits
Jan Kratochvil 2a0fd8a
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
Jan Kratochvil 2a0fd8a
new file mode 100644
Jan Kratochvil 4f54fc4
index 0000000..aa473a3
Jan Kratochvil 2a0fd8a
--- /dev/null
Jan Kratochvil 2a0fd8a
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
Jan Kratochvil 2a0fd8a
@@ -0,0 +1,33 @@
Jan Kratochvil 2a0fd8a
+/* This testcase is part of GDB, the GNU debugger.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   Copyright 2014 Free Software Foundation, Inc.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   This program is free software; you can redistribute it and/or modify
Jan Kratochvil 2a0fd8a
+   it under the terms of the GNU General Public License as published by
Jan Kratochvil 2a0fd8a
+   the Free Software Foundation; either version 3 of the License, or
Jan Kratochvil 2a0fd8a
+   (at your option) any later version.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   This program is distributed in the hope that it will be useful,
Jan Kratochvil 2a0fd8a
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
Jan Kratochvil 2a0fd8a
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Jan Kratochvil 2a0fd8a
+   GNU General Public License for more details.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+   You should have received a copy of the GNU General Public License
Jan Kratochvil 2a0fd8a
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+volatile int vv, *p;
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+static __attribute__((noinline)) int
Jan Kratochvil 2a0fd8a
+bar (int &ref)
Jan Kratochvil 2a0fd8a
+{
Jan Kratochvil 2a0fd8a
+  vv++; /* break-here */
Jan Kratochvil 2a0fd8a
+  p = &ref;
Jan Kratochvil 2a0fd8a
+  return ref;
Jan Kratochvil 2a0fd8a
+}
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+int
Jan Kratochvil 2a0fd8a
+main (void)
Jan Kratochvil 2a0fd8a
+{
Jan Kratochvil 2a0fd8a
+  int var = 10;
Jan Kratochvil 2a0fd8a
+  return bar (var);
Jan Kratochvil 2a0fd8a
+}
Jan Kratochvil 2a0fd8a
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
Jan Kratochvil 2a0fd8a
new file mode 100644
Jan Kratochvil 2a0fd8a
index 0000000..f06247d
Jan Kratochvil 2a0fd8a
--- /dev/null
Jan Kratochvil 2a0fd8a
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
Jan Kratochvil 2a0fd8a
@@ -0,0 +1,35 @@
Jan Kratochvil 2a0fd8a
+# Copyright (C) 2014 Free Software Foundation, Inc.
Jan Kratochvil 2a0fd8a
+#
Jan Kratochvil 2a0fd8a
+# This program is free software; you can redistribute it and/or modify
Jan Kratochvil 2a0fd8a
+# it under the terms of the GNU General Public License as published by
Jan Kratochvil 2a0fd8a
+# the Free Software Foundation; either version 3 of the License, or
Jan Kratochvil 2a0fd8a
+# (at your option) any later version.
Jan Kratochvil 2a0fd8a
+#
Jan Kratochvil 2a0fd8a
+# This program is distributed in the hope that it will be useful,
Jan Kratochvil 2a0fd8a
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
Jan Kratochvil 2a0fd8a
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Jan Kratochvil 2a0fd8a
+# GNU General Public License for more details.
Jan Kratochvil 2a0fd8a
+#
Jan Kratochvil 2a0fd8a
+# You should have received a copy of the GNU General Public License
Jan Kratochvil 2a0fd8a
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+standard_testfile .S .cc
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
Jan Kratochvil 2a0fd8a
+    verbose "Skipping amd64-entry-value-paramref."
Jan Kratochvil 2a0fd8a
+    return
Jan Kratochvil 2a0fd8a
+}
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} "c++"] } {
Jan Kratochvil 2a0fd8a
+    return -1
Jan Kratochvil 2a0fd8a
+}
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+if ![runto_main] {
Jan Kratochvil 2a0fd8a
+    return -1
Jan Kratochvil 2a0fd8a
+}
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+set srcfile $srcfile2
Jan Kratochvil 2a0fd8a
+gdb_breakpoint [gdb_get_line_number "break-here"]
Jan Kratochvil 2a0fd8a
+
Jan Kratochvil 2a0fd8a
+gdb_continue_to_breakpoint "break-here" ".* break-here .*"
Jan Kratochvil 2a0fd8a
+gdb_test "frame" {bar \(ref=@0x[0-9a-f]+: 10, ref@entry=@0x[0-9a-f]+: <optimized out>\) at .*}
Jan Kratochvil 4f54fc4
diff --git a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
Jan Kratochvil 33d54d9
new file mode 100644
Jan Kratochvil 4f54fc4
index 0000000..2f8f4d2
Jan Kratochvil 4f54fc4
--- /dev/null
Jan Kratochvil 4f54fc4
+++ b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
Jan Kratochvil 4f54fc4
@@ -0,0 +1,297 @@
Jan Kratochvil 4f54fc4
+/* This testcase is part of GDB, the GNU debugger.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   Copyright 2012-2014 Free Software Foundation, Inc.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   This program is free software; you can redistribute it and/or modify
Jan Kratochvil 4f54fc4
+   it under the terms of the GNU General Public License as published by
Jan Kratochvil 4f54fc4
+   the Free Software Foundation; either version 3 of the License, or
Jan Kratochvil 4f54fc4
+   (at your option) any later version.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   This program is distributed in the hope that it will be useful,
Jan Kratochvil 4f54fc4
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
Jan Kratochvil 4f54fc4
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Jan Kratochvil 4f54fc4
+   GNU General Public License for more details.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   You should have received a copy of the GNU General Public License
Jan Kratochvil 4f54fc4
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+/* This file is compiled from gdb.arch/amd64-entry-value-param.c
Jan Kratochvil 4f54fc4
+   using -g -dA -S -O2.  */
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+	.file	"amd64-optimout-repeat.c"
Jan Kratochvil 4f54fc4
+	.text
Jan Kratochvil 4f54fc4
+.Ltext0:
Jan Kratochvil 4f54fc4
+	.section	.text.unlikely,"ax",@progbits
Jan Kratochvil 4f54fc4
+.LCOLDB0:
Jan Kratochvil 4f54fc4
+	.section	.text.startup,"ax",@progbits
Jan Kratochvil 4f54fc4
+.LHOTB0:
Jan Kratochvil 4f54fc4
+	.p2align 4,,15
Jan Kratochvil 4f54fc4
+	.section	.text.unlikely
Jan Kratochvil 4f54fc4
+.Ltext_cold0:
Jan Kratochvil 4f54fc4
+	.section	.text.startup
Jan Kratochvil 4f54fc4
+	.globl	main
Jan Kratochvil 4f54fc4
+	.type	main, @function
Jan Kratochvil 4f54fc4
+main:
Jan Kratochvil 4f54fc4
+.LFB0:
Jan Kratochvil 4f54fc4
+	.file 1 "gdb.arch/amd64-optimout-repeat.c"
Jan Kratochvil 4f54fc4
+	# gdb.arch/amd64-optimout-repeat.c:20
Jan Kratochvil 4f54fc4
+	.loc 1 20 0
Jan Kratochvil 4f54fc4
+	.cfi_startproc
Jan Kratochvil 4f54fc4
+# BLOCK 2 freq:10000 seq:0
Jan Kratochvil 4f54fc4
+# PRED: ENTRY [100.0%]  (FALLTHRU)
Jan Kratochvil 4f54fc4
+.LVL0:
Jan Kratochvil 4f54fc4
+	# gdb.arch/amd64-optimout-repeat.c:29
Jan Kratochvil 4f54fc4
+	.loc 1 29 0
Jan Kratochvil 4f54fc4
+	xorl	%eax, %eax
Jan Kratochvil 4f54fc4
+# SUCC: EXIT [100.0%] 
Jan Kratochvil 4f54fc4
+	ret
Jan Kratochvil 4f54fc4
+	.cfi_endproc
Jan Kratochvil 4f54fc4
+.LFE0:
Jan Kratochvil 4f54fc4
+	.size	main, .-main
Jan Kratochvil 4f54fc4
+	.section	.text.unlikely
Jan Kratochvil 4f54fc4
+.LCOLDE0:
Jan Kratochvil 4f54fc4
+	.section	.text.startup
Jan Kratochvil 4f54fc4
+.LHOTE0:
Jan Kratochvil 4f54fc4
+	.text
Jan Kratochvil 4f54fc4
+.Letext0:
Jan Kratochvil 4f54fc4
+	.section	.text.unlikely
Jan Kratochvil 4f54fc4
+.Letext_cold0:
Jan Kratochvil 4f54fc4
+	.section	.debug_info,"",@progbits
Jan Kratochvil 4f54fc4
+.Ldebug_info0:
Jan Kratochvil 4f54fc4
+	.long	0x97	# Length of Compilation Unit Info
Jan Kratochvil 4f54fc4
+	.value	0x4	# DWARF version number
Jan Kratochvil 4f54fc4
+	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
Jan Kratochvil 4f54fc4
+	.byte	0x8	# Pointer Size (in bytes)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
Jan Kratochvil 4f54fc4
+	.long	.LASF1	# DW_AT_producer: "GNU C 4.9.1 20140709 (prerelease) -mtune=generic -march=x86-64 -g -O2"
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_AT_language
Jan Kratochvil 4f54fc4
+	.long	.LASF2	# DW_AT_name: "gdb.arch/amd64-optimout-repeat.c"
Jan Kratochvil 4f54fc4
+	.long	.LASF3	# DW_AT_comp_dir: ""
Jan Kratochvil 4f54fc4
+	.long	.Ldebug_ranges0+0	# DW_AT_ranges
Jan Kratochvil 4f54fc4
+	.quad	0	# DW_AT_low_pc
Jan Kratochvil 4f54fc4
+	.long	.Ldebug_line0	# DW_AT_stmt_list
Jan Kratochvil 4f54fc4
+	.uleb128 0x2	# (DIE (0x29) DW_TAG_subprogram)
Jan Kratochvil 4f54fc4
+			# DW_AT_external
Jan Kratochvil 4f54fc4
+	.long	.LASF4	# DW_AT_name: "main"
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-optimout-repeat.c)
Jan Kratochvil 4f54fc4
+	.byte	0x13	# DW_AT_decl_line
Jan Kratochvil 4f54fc4
+			# DW_AT_prototyped
Jan Kratochvil 4f54fc4
+	.long	0x7c	# DW_AT_type
Jan Kratochvil 4f54fc4
+	.quad	.LFB0	# DW_AT_low_pc
Jan Kratochvil 4f54fc4
+	.quad	.LFE0-.LFB0	# DW_AT_high_pc
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# DW_AT_frame_base
Jan Kratochvil 4f54fc4
+	.byte	0x9c	# DW_OP_call_frame_cfa
Jan Kratochvil 4f54fc4
+			# DW_AT_GNU_all_call_sites
Jan Kratochvil 4f54fc4
+	.long	0x7c	# DW_AT_sibling
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DIE (0x4a) DW_TAG_structure_type)
Jan Kratochvil 4f54fc4
+	.value	0x404	# DW_AT_byte_size
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-optimout-repeat.c)
Jan Kratochvil 4f54fc4
+	.byte	0x15	# DW_AT_decl_line
Jan Kratochvil 4f54fc4
+	.long	0x6a	# DW_AT_sibling
Jan Kratochvil 4f54fc4
+	.uleb128 0x4	# (DIE (0x53) DW_TAG_member)
Jan Kratochvil 4f54fc4
+	.ascii "i\0"	# DW_AT_name
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-optimout-repeat.c)
Jan Kratochvil 4f54fc4
+	.byte	0x17	# DW_AT_decl_line
Jan Kratochvil 4f54fc4
+	.long	0x7c	# DW_AT_type
Jan Kratochvil 4f54fc4
+	.byte	0	# DW_AT_data_member_location
Jan Kratochvil 4f54fc4
+	.uleb128 0x4	# (DIE (0x5d) DW_TAG_member)
Jan Kratochvil 4f54fc4
+	.ascii "xxx\0"	# DW_AT_name
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-optimout-repeat.c)
Jan Kratochvil 4f54fc4
+	.byte	0x18	# DW_AT_decl_line
Jan Kratochvil 4f54fc4
+	.long	0x83	# DW_AT_type
Jan Kratochvil 4f54fc4
+	.byte	0x4	# DW_AT_data_member_location
Jan Kratochvil 4f54fc4
+	.byte	0	# end of children of DIE 0x4a
Jan Kratochvil 4f54fc4
+	.uleb128 0x5	# (DIE (0x6a) DW_TAG_variable)
Jan Kratochvil 4f54fc4
+	.ascii "v\0"	# DW_AT_name
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-optimout-repeat.c)
Jan Kratochvil 4f54fc4
+	.byte	0x1a	# DW_AT_decl_line
Jan Kratochvil 4f54fc4
+	.long	0x4a	# DW_AT_type
Jan Kratochvil 4f54fc4
+	.uleb128 0x7	# DW_AT_location
Jan Kratochvil 4f54fc4
+	.byte	0x30	# DW_OP_lit0
Jan Kratochvil 4f54fc4
+	.byte	0x9f	# DW_OP_stack_value
Jan Kratochvil 4f54fc4
+	.byte	0x93	# DW_OP_piece
Jan Kratochvil 4f54fc4
+	.uleb128 0x4
Jan Kratochvil 4f54fc4
+	.byte	0x93	# DW_OP_piece
Jan Kratochvil 4f54fc4
+	.uleb128 0x400
Jan Kratochvil 4f54fc4
+	.byte	0	# end of children of DIE 0x29
Jan Kratochvil 4f54fc4
+	.uleb128 0x6	# (DIE (0x7c) DW_TAG_base_type)
Jan Kratochvil 4f54fc4
+	.byte	0x4	# DW_AT_byte_size
Jan Kratochvil 4f54fc4
+	.byte	0x5	# DW_AT_encoding
Jan Kratochvil 4f54fc4
+	.ascii "int\0"	# DW_AT_name
Jan Kratochvil 4f54fc4
+	.uleb128 0x7	# (DIE (0x83) DW_TAG_array_type)
Jan Kratochvil 4f54fc4
+	.long	0x7c	# DW_AT_type
Jan Kratochvil 4f54fc4
+	.long	0x93	# DW_AT_sibling
Jan Kratochvil 4f54fc4
+	.uleb128 0x8	# (DIE (0x8c) DW_TAG_subrange_type)
Jan Kratochvil 4f54fc4
+	.long	0x93	# DW_AT_type
Jan Kratochvil 4f54fc4
+	.byte	0xff	# DW_AT_upper_bound
Jan Kratochvil 4f54fc4
+	.byte	0	# end of children of DIE 0x83
Jan Kratochvil 4f54fc4
+	.uleb128 0x9	# (DIE (0x93) DW_TAG_base_type)
Jan Kratochvil 4f54fc4
+	.byte	0x8	# DW_AT_byte_size
Jan Kratochvil 4f54fc4
+	.byte	0x7	# DW_AT_encoding
Jan Kratochvil 4f54fc4
+	.long	.LASF0	# DW_AT_name: "sizetype"
Jan Kratochvil 4f54fc4
+	.byte	0	# end of children of DIE 0xb
Jan Kratochvil 4f54fc4
+	.section	.debug_abbrev,"",@progbits
Jan Kratochvil 4f54fc4
+.Ldebug_abbrev0:
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 4f54fc4
+	.uleb128 0x25	# (DW_AT_producer)
Jan Kratochvil 4f54fc4
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_AT_language)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 4f54fc4
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1b	# (DW_AT_comp_dir)
Jan Kratochvil 4f54fc4
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 4f54fc4
+	.uleb128 0x55	# (DW_AT_ranges)
Jan Kratochvil 4f54fc4
+	.uleb128 0x17	# (DW_FORM_sec_offset)
Jan Kratochvil 4f54fc4
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 4f54fc4
+	.uleb128 0x10	# (DW_AT_stmt_list)
Jan Kratochvil 4f54fc4
+	.uleb128 0x17	# (DW_FORM_sec_offset)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x2	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 4f54fc4
+	.uleb128 0x3f	# (DW_AT_external)
Jan Kratochvil 4f54fc4
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 4f54fc4
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x27	# (DW_AT_prototyped)
Jan Kratochvil 4f54fc4
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 4f54fc4
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.uleb128 0x11	# (DW_AT_low_pc)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (DW_FORM_addr)
Jan Kratochvil 4f54fc4
+	.uleb128 0x12	# (DW_AT_high_pc)
Jan Kratochvil 4f54fc4
+	.uleb128 0x7	# (DW_FORM_data8)
Jan Kratochvil 4f54fc4
+	.uleb128 0x40	# (DW_AT_frame_base)
Jan Kratochvil 4f54fc4
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 4f54fc4
+	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
Jan Kratochvil 4f54fc4
+	.uleb128 0x19	# (DW_FORM_flag_present)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (DW_AT_sibling)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (TAG: DW_TAG_structure_type)
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_AT_byte_size)
Jan Kratochvil 4f54fc4
+	.uleb128 0x5	# (DW_FORM_data2)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (DW_AT_sibling)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x4	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0xd	# (TAG: DW_TAG_member)
Jan Kratochvil 4f54fc4
+	.byte	0	# DW_children_no
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 4f54fc4
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.uleb128 0x38	# (DW_AT_data_member_location)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x5	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x34	# (TAG: DW_TAG_variable)
Jan Kratochvil 4f54fc4
+	.byte	0	# DW_children_no
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 4f54fc4
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3a	# (DW_AT_decl_file)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3b	# (DW_AT_decl_line)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.uleb128 0x2	# (DW_AT_location)
Jan Kratochvil 4f54fc4
+	.uleb128 0x18	# (DW_FORM_exprloc)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x6	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x24	# (TAG: DW_TAG_base_type)
Jan Kratochvil 4f54fc4
+	.byte	0	# DW_children_no
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_AT_byte_size)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3e	# (DW_AT_encoding)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 4f54fc4
+	.uleb128 0x8	# (DW_FORM_string)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x7	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (TAG: DW_TAG_array_type)
Jan Kratochvil 4f54fc4
+	.byte	0x1	# DW_children_yes
Jan Kratochvil 4f54fc4
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.uleb128 0x1	# (DW_AT_sibling)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x8	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x21	# (TAG: DW_TAG_subrange_type)
Jan Kratochvil 4f54fc4
+	.byte	0	# DW_children_no
Jan Kratochvil 4f54fc4
+	.uleb128 0x49	# (DW_AT_type)
Jan Kratochvil 4f54fc4
+	.uleb128 0x13	# (DW_FORM_ref4)
Jan Kratochvil 4f54fc4
+	.uleb128 0x2f	# (DW_AT_upper_bound)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.uleb128 0x9	# (abbrev code)
Jan Kratochvil 4f54fc4
+	.uleb128 0x24	# (TAG: DW_TAG_base_type)
Jan Kratochvil 4f54fc4
+	.byte	0	# DW_children_no
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_AT_byte_size)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3e	# (DW_AT_encoding)
Jan Kratochvil 4f54fc4
+	.uleb128 0xb	# (DW_FORM_data1)
Jan Kratochvil 4f54fc4
+	.uleb128 0x3	# (DW_AT_name)
Jan Kratochvil 4f54fc4
+	.uleb128 0xe	# (DW_FORM_strp)
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.byte	0
Jan Kratochvil 4f54fc4
+	.section	.debug_aranges,"",@progbits
Jan Kratochvil 4f54fc4
+	.long	0x2c	# Length of Address Ranges Info
Jan Kratochvil 4f54fc4
+	.value	0x2	# DWARF Version
Jan Kratochvil 4f54fc4
+	.long	.Ldebug_info0	# Offset of Compilation Unit Info
Jan Kratochvil 4f54fc4
+	.byte	0x8	# Size of Address
Jan Kratochvil 4f54fc4
+	.byte	0	# Size of Segment Descriptor
Jan Kratochvil 4f54fc4
+	.value	0	# Pad to 16 byte boundary
Jan Kratochvil 4f54fc4
+	.value	0
Jan Kratochvil 4f54fc4
+	.quad	.LFB0	# Address
Jan Kratochvil 4f54fc4
+	.quad	.LFE0-.LFB0	# Length
Jan Kratochvil 4f54fc4
+	.quad	0
Jan Kratochvil 4f54fc4
+	.quad	0
Jan Kratochvil 4f54fc4
+	.section	.debug_ranges,"",@progbits
Jan Kratochvil 4f54fc4
+.Ldebug_ranges0:
Jan Kratochvil 4f54fc4
+	.quad	.LFB0	# Offset 0
Jan Kratochvil 4f54fc4
+	.quad	.LFE0
Jan Kratochvil 4f54fc4
+	.quad	0
Jan Kratochvil 4f54fc4
+	.quad	0
Jan Kratochvil 4f54fc4
+	.section	.debug_line,"",@progbits
Jan Kratochvil 4f54fc4
+.Ldebug_line0:
Jan Kratochvil 4f54fc4
+	.section	.debug_str,"MS",@progbits,1
Jan Kratochvil 4f54fc4
+.LASF0:
Jan Kratochvil 4f54fc4
+	.string	"sizetype"
Jan Kratochvil 4f54fc4
+.LASF2:
Jan Kratochvil 4f54fc4
+	.string	"gdb.arch/amd64-optimout-repeat.c"
Jan Kratochvil 4f54fc4
+.LASF1:
Jan Kratochvil 4f54fc4
+	.string	"GNU C 4.9.1 20140709 (prerelease) -mtune=generic -march=x86-64 -g -O2"
Jan Kratochvil 4f54fc4
+.LASF3:
Jan Kratochvil 4f54fc4
+	.string	""
Jan Kratochvil 4f54fc4
+.LASF4:
Jan Kratochvil 4f54fc4
+	.string	"main"
Jan Kratochvil 4f54fc4
+	.ident	"GCC: (GNU) 4.9.1 20140709 (prerelease)"
Jan Kratochvil 4f54fc4
+	.section	.note.GNU-stack,"",@progbits
Jan Kratochvil 4f54fc4
diff --git a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
Jan Kratochvil 4f54fc4
new file mode 100644
Jan Kratochvil 4f54fc4
index 0000000..a32b6de
Jan Kratochvil 4f54fc4
--- /dev/null
Jan Kratochvil 4f54fc4
+++ b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
Jan Kratochvil 4f54fc4
@@ -0,0 +1,29 @@
Jan Kratochvil 4f54fc4
+/* This testcase is part of GDB, the GNU debugger.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   Copyright 2014 Free Software Foundation, Inc.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   This program is free software; you can redistribute it and/or modify
Jan Kratochvil 4f54fc4
+   it under the terms of the GNU General Public License as published by
Jan Kratochvil 4f54fc4
+   the Free Software Foundation; either version 3 of the License, or
Jan Kratochvil 4f54fc4
+   (at your option) any later version.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   This program is distributed in the hope that it will be useful,
Jan Kratochvil 4f54fc4
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
Jan Kratochvil 4f54fc4
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Jan Kratochvil 4f54fc4
+   GNU General Public License for more details.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+   You should have received a copy of the GNU General Public License
Jan Kratochvil 4f54fc4
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+int
Jan Kratochvil 4f54fc4
+main (void)
Jan Kratochvil 4f54fc4
+{
Jan Kratochvil 4f54fc4
+  struct
Jan Kratochvil 4f54fc4
+    {
Jan Kratochvil 4f54fc4
+      int i;
Jan Kratochvil 4f54fc4
+      int xxx[0x100];
Jan Kratochvil 4f54fc4
+    }
Jan Kratochvil 4f54fc4
+  v = { 0 };
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+  return v.i;
Jan Kratochvil 4f54fc4
+}
Jan Kratochvil 4f54fc4
diff --git a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
Jan Kratochvil 4f54fc4
new file mode 100644
Jan Kratochvil 4f54fc4
index 0000000..f3c93a4
Jan Kratochvil 4f54fc4
--- /dev/null
Jan Kratochvil 4f54fc4
+++ b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
Jan Kratochvil 4f54fc4
@@ -0,0 +1,36 @@
Jan Kratochvil 4f54fc4
+# Copyright (C) 2014 Free Software Foundation, Inc.
Jan Kratochvil 4f54fc4
+#
Jan Kratochvil 4f54fc4
+# This program is free software; you can redistribute it and/or modify
Jan Kratochvil 4f54fc4
+# it under the terms of the GNU General Public License as published by
Jan Kratochvil 4f54fc4
+# the Free Software Foundation; either version 3 of the License, or
Jan Kratochvil 4f54fc4
+# (at your option) any later version.
Jan Kratochvil 4f54fc4
+#
Jan Kratochvil 4f54fc4
+# This program is distributed in the hope that it will be useful,
Jan Kratochvil 4f54fc4
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
Jan Kratochvil 4f54fc4
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Jan Kratochvil 4f54fc4
+# GNU General Public License for more details.
Jan Kratochvil 4f54fc4
+#
Jan Kratochvil 4f54fc4
+# You should have received a copy of the GNU General Public License
Jan Kratochvil 4f54fc4
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+standard_testfile .S .c
Jan Kratochvil 4f54fc4
+set opts {}
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+if [info exists COMPILE] {
Jan Kratochvil 4f54fc4
+    # make check RUNTESTFLAGS="gdb.arch/amd64-optimout-repeat.exp COMPILE=1"
Jan Kratochvil 4f54fc4
+    set srcfile ${srcfile2}
Jan Kratochvil 4f54fc4
+    lappend opts debug optimize=-O2
Jan Kratochvil 4f54fc4
+} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
Jan Kratochvil 4f54fc4
+    verbose "Skipping amd64-optimout-repeat."
Jan Kratochvil 4f54fc4
+    return
Jan Kratochvil 4f54fc4
+}
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} $opts] } {
Jan Kratochvil 4f54fc4
+    return -1
Jan Kratochvil 4f54fc4
+}
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+if ![runto_main] {
Jan Kratochvil 4f54fc4
+    return -1
Jan Kratochvil 4f54fc4
+}
Jan Kratochvil 4f54fc4
+
Jan Kratochvil 4f54fc4
+gdb_test "print v" { = {i = 0, xxx = {<optimized out> <repeats 256 times>}}}
Jan Kratochvil 2a0fd8a
Jan Kratochvil 33d54d9
--Dxnq1zWXvFF0Q93v--
Jan Kratochvil 2a0fd8a