| /* This testcase is part of GDB, the GNU debugger. | 
 |  | 
 |    Copyright 2012-2022 Free Software Foundation, Inc. | 
 |  | 
 |    This program is free software; you can redistribute it and/or modify | 
 |    it under the terms of the GNU General Public License as published by | 
 |    the Free Software Foundation; either version 3 of the License, or | 
 |    (at your option) any later version. | 
 |  | 
 |    This program is distributed in the hope that it will be useful, | 
 |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |    GNU General Public License for more details. | 
 |  | 
 |    You should have received a copy of the GNU General Public License | 
 |    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ | 
 |  | 
 | /* This source file was generated by: | 
 |    g++ -o gdb.arch/amd64-tailcall-cxx1.S gdb.arch/amd64-tailcall-cxx1.cc -Wall -S -dA -O2 -g | 
 |    Fedora GCC was used here to also test the case of missing DW_AT_linkage_name. | 
 |    */ | 
 |  | 
 | 	.file	"amd64-tailcall-cxx1.cc" | 
 | 	.text | 
 | .Ltext0: | 
 | 	.p2align 4,,15 | 
 | 	.globl	_Z1gi | 
 | 	.type	_Z1gi, @function | 
 | _Z1gi: | 
 | .LFB0: | 
 | 	.file 1 "gdb.arch/amd64-tailcall-cxx1.cc" | 
 | 	# gdb.arch/amd64-tailcall-cxx1.cc:22 | 
 | 	.loc 1 22 0 | 
 | 	.cfi_startproc | 
 | .LVL0: | 
 | # BLOCK 2 freq:10000 seq:0 | 
 | # PRED: ENTRY [100.0%]  (FALLTHRU) | 
 | 	# gdb.arch/amd64-tailcall-cxx1.cc:23 | 
 | 	.loc 1 23 0 | 
 | 	movl	%edi, v(%rip) | 
 | # SUCC: EXIT [100.0%]  | 
 | 	ret | 
 | 	.cfi_endproc | 
 | .LFE0: | 
 | 	.size	_Z1gi, .-_Z1gi | 
 | 	.section	.text.startup,"ax",@progbits | 
 | 	.p2align 4,,15 | 
 | 	.globl	main | 
 | 	.type	main, @function | 
 | main: | 
 | .LFB1: | 
 | 	# gdb.arch/amd64-tailcall-cxx1.cc:30 | 
 | 	.loc 1 30 0 | 
 | 	.cfi_startproc | 
 | # BLOCK 2 freq:10000 seq:0 | 
 | # PRED: ENTRY [100.0%]  (FALLTHRU) | 
 | 	subq	$8, %rsp | 
 | 	.cfi_def_cfa_offset 16 | 
 | 	# gdb.arch/amd64-tailcall-cxx1.cc:31 | 
 | 	.loc 1 31 0 | 
 | 	movl	$1, %edi | 
 | 	call	_Z1fi | 
 | .LVL1: | 
 | 	# gdb.arch/amd64-tailcall-cxx1.cc:32 | 
 | 	.loc 1 32 0 | 
 | 	xorl	%eax, %eax | 
 | 	addq	$8, %rsp | 
 | 	.cfi_def_cfa_offset 8 | 
 | # SUCC: EXIT [100.0%]  | 
 | 	ret | 
 | 	.cfi_endproc | 
 | .LFE1: | 
 | 	.size	main, .-main | 
 | 	.globl	v | 
 | 	.bss | 
 | 	.align 4 | 
 | 	.type	v, @object | 
 | 	.size	v, 4 | 
 | v: | 
 | 	.zero	4 | 
 | 	.text | 
 | .Letext0: | 
 | 	.section	.debug_info,"",@progbits | 
 | .Ldebug_info0: | 
 | 	.long	0xb4	# Length of Compilation Unit Info | 
 | 	.value	0x4	# DWARF version number | 
 | 	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section | 
 | 	.byte	0x8	# Pointer Size (in bytes) | 
 | 	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit) | 
 | 	.long	.LASF1	# DW_AT_producer: "GNU C++ 4.8.0 20130220 (Red Hat 4.8.0-0.14) -mtune=generic -march=x86-64 -g -O2" | 
 | 	.byte	0x4	# DW_AT_language | 
 | 	.long	.LASF2	# DW_AT_name: "gdb.arch/amd64-tailcall-cxx1.cc" | 
 | 	.long	.LASF3	# DW_AT_comp_dir: "" | 
 | 	.long	.Ldebug_ranges0+0	# DW_AT_ranges | 
 | 	.quad	0	# DW_AT_low_pc | 
 | 	.long	.Ldebug_line0	# DW_AT_stmt_list | 
 | 	.uleb128 0x2	# (DIE (0x29) DW_TAG_subprogram) | 
 | 			# DW_AT_external | 
 | 	.ascii "g\0"	# DW_AT_name | 
 | 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc) | 
 | 	.byte	0x15	# DW_AT_decl_line | 
 | 	.long	.LASF4	# DW_AT_linkage_name: "_Z1gi" | 
 | 	.quad	.LFB0	# DW_AT_low_pc | 
 | 	.quad	.LFE0-.LFB0	# DW_AT_high_pc | 
 | 	.uleb128 0x1	# DW_AT_frame_base | 
 | 	.byte	0x9c	# DW_OP_call_frame_cfa | 
 | 			# DW_AT_GNU_all_call_sites | 
 | 	.long	0x54	# DW_AT_sibling | 
 | 	.uleb128 0x3	# (DIE (0x48) DW_TAG_formal_parameter) | 
 | 	.ascii "x\0"	# DW_AT_name | 
 | 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc) | 
 | 	.byte	0x15	# DW_AT_decl_line | 
 | 	.long	0x54	# DW_AT_type | 
 | 	.uleb128 0x1	# DW_AT_location | 
 | 	.byte	0x55	# DW_OP_reg5 | 
 | 	.byte	0	# end of children of DIE 0x29 | 
 | 	.uleb128 0x4	# (DIE (0x54) DW_TAG_base_type) | 
 | 	.byte	0x4	# DW_AT_byte_size | 
 | 	.byte	0x5	# DW_AT_encoding | 
 | 	.ascii "int\0"	# DW_AT_name | 
 | 	.uleb128 0x5	# (DIE (0x5b) DW_TAG_subprogram) | 
 | 			# DW_AT_external | 
 | 	.long	.LASF0	# DW_AT_name: "main" | 
 | 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc) | 
 | 	.byte	0x1d	# DW_AT_decl_line | 
 | 	.long	0x54	# DW_AT_type | 
 | 	.quad	.LFB1	# DW_AT_low_pc | 
 | 	.quad	.LFE1-.LFB1	# DW_AT_high_pc | 
 | 	.uleb128 0x1	# DW_AT_frame_base | 
 | 	.byte	0x9c	# DW_OP_call_frame_cfa | 
 | 			# DW_AT_GNU_all_call_sites | 
 | 	.long	0x90	# DW_AT_sibling | 
 | 	.uleb128 0x6	# (DIE (0x7c) DW_TAG_GNU_call_site) | 
 | 	.quad	.LVL1	# DW_AT_low_pc | 
 | 	.long	0xa8	# DW_AT_abstract_origin | 
 | 	.uleb128 0x7	# (DIE (0x89) DW_TAG_GNU_call_site_parameter) | 
 | 	.uleb128 0x1	# DW_AT_location | 
 | 	.byte	0x55	# DW_OP_reg5 | 
 | 	.uleb128 0x1	# DW_AT_GNU_call_site_value | 
 | 	.byte	0x31	# DW_OP_lit1 | 
 | 	.byte	0	# end of children of DIE 0x7c | 
 | 	.byte	0	# end of children of DIE 0x5b | 
 | 	.uleb128 0x8	# (DIE (0x90) DW_TAG_variable) | 
 | 	.ascii "v\0"	# DW_AT_name | 
 | 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc) | 
 | 	.byte	0x12	# DW_AT_decl_line | 
 | 	.long	0xa3	# DW_AT_type | 
 | 			# DW_AT_external | 
 | 	.uleb128 0x9	# DW_AT_location | 
 | 	.byte	0x3	# DW_OP_addr | 
 | 	.quad	v | 
 | 	.uleb128 0x9	# (DIE (0xa3) DW_TAG_volatile_type) | 
 | 	.long	0x54	# DW_AT_type | 
 | 	.uleb128 0xa	# (DIE (0xa8) DW_TAG_subprogram) | 
 | 			# DW_AT_external | 
 | 	.ascii "f\0"	# DW_AT_name | 
 | 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc) | 
 | 	.byte	0x1a	# DW_AT_decl_line | 
 | 	.long	.LASF5	# DW_AT_linkage_name: "_Z1fi" | 
 | 			# DW_AT_declaration | 
 | 	.uleb128 0xb	# (DIE (0xb1) DW_TAG_formal_parameter) | 
 | 	.long	0x54	# DW_AT_type | 
 | 	.byte	0	# end of children of DIE 0xa8 | 
 | 	.byte	0	# end of children of DIE 0xb | 
 | 	.section	.debug_abbrev,"",@progbits | 
 | .Ldebug_abbrev0: | 
 | 	.uleb128 0x1	# (abbrev code) | 
 | 	.uleb128 0x11	# (TAG: DW_TAG_compile_unit) | 
 | 	.byte	0x1	# DW_children_yes | 
 | 	.uleb128 0x25	# (DW_AT_producer) | 
 | 	.uleb128 0xe	# (DW_FORM_strp) | 
 | 	.uleb128 0x13	# (DW_AT_language) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0xe	# (DW_FORM_strp) | 
 | 	.uleb128 0x1b	# (DW_AT_comp_dir) | 
 | 	.uleb128 0xe	# (DW_FORM_strp) | 
 | 	.uleb128 0x55	# (DW_AT_ranges) | 
 | 	.uleb128 0x17	# (DW_FORM_sec_offset) | 
 | 	.uleb128 0x11	# (DW_AT_low_pc) | 
 | 	.uleb128 0x1	# (DW_FORM_addr) | 
 | 	.uleb128 0x10	# (DW_AT_stmt_list) | 
 | 	.uleb128 0x17	# (DW_FORM_sec_offset) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x2	# (abbrev code) | 
 | 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram) | 
 | 	.byte	0x1	# DW_children_yes | 
 | 	.uleb128 0x3f	# (DW_AT_external) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0x8	# (DW_FORM_string) | 
 | 	.uleb128 0x3a	# (DW_AT_decl_file) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3b	# (DW_AT_decl_line) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x6e	# (DW_AT_linkage_name) | 
 | 	.uleb128 0xe	# (DW_FORM_strp) | 
 | 	.uleb128 0x11	# (DW_AT_low_pc) | 
 | 	.uleb128 0x1	# (DW_FORM_addr) | 
 | 	.uleb128 0x12	# (DW_AT_high_pc) | 
 | 	.uleb128 0x7	# (DW_FORM_data8) | 
 | 	.uleb128 0x40	# (DW_AT_frame_base) | 
 | 	.uleb128 0x18	# (DW_FORM_exprloc) | 
 | 	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.uleb128 0x1	# (DW_AT_sibling) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x3	# (abbrev code) | 
 | 	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter) | 
 | 	.byte	0	# DW_children_no | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0x8	# (DW_FORM_string) | 
 | 	.uleb128 0x3a	# (DW_AT_decl_file) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3b	# (DW_AT_decl_line) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x49	# (DW_AT_type) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.uleb128 0x2	# (DW_AT_location) | 
 | 	.uleb128 0x18	# (DW_FORM_exprloc) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x4	# (abbrev code) | 
 | 	.uleb128 0x24	# (TAG: DW_TAG_base_type) | 
 | 	.byte	0	# DW_children_no | 
 | 	.uleb128 0xb	# (DW_AT_byte_size) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3e	# (DW_AT_encoding) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0x8	# (DW_FORM_string) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x5	# (abbrev code) | 
 | 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram) | 
 | 	.byte	0x1	# DW_children_yes | 
 | 	.uleb128 0x3f	# (DW_AT_external) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0xe	# (DW_FORM_strp) | 
 | 	.uleb128 0x3a	# (DW_AT_decl_file) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3b	# (DW_AT_decl_line) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x49	# (DW_AT_type) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.uleb128 0x11	# (DW_AT_low_pc) | 
 | 	.uleb128 0x1	# (DW_FORM_addr) | 
 | 	.uleb128 0x12	# (DW_AT_high_pc) | 
 | 	.uleb128 0x7	# (DW_FORM_data8) | 
 | 	.uleb128 0x40	# (DW_AT_frame_base) | 
 | 	.uleb128 0x18	# (DW_FORM_exprloc) | 
 | 	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.uleb128 0x1	# (DW_AT_sibling) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x6	# (abbrev code) | 
 | 	.uleb128 0x4109	# (TAG: DW_TAG_GNU_call_site) | 
 | 	.byte	0x1	# DW_children_yes | 
 | 	.uleb128 0x11	# (DW_AT_low_pc) | 
 | 	.uleb128 0x1	# (DW_FORM_addr) | 
 | 	.uleb128 0x31	# (DW_AT_abstract_origin) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x7	# (abbrev code) | 
 | 	.uleb128 0x410a	# (TAG: DW_TAG_GNU_call_site_parameter) | 
 | 	.byte	0	# DW_children_no | 
 | 	.uleb128 0x2	# (DW_AT_location) | 
 | 	.uleb128 0x18	# (DW_FORM_exprloc) | 
 | 	.uleb128 0x2111	# (DW_AT_GNU_call_site_value) | 
 | 	.uleb128 0x18	# (DW_FORM_exprloc) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x8	# (abbrev code) | 
 | 	.uleb128 0x34	# (TAG: DW_TAG_variable) | 
 | 	.byte	0	# DW_children_no | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0x8	# (DW_FORM_string) | 
 | 	.uleb128 0x3a	# (DW_AT_decl_file) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3b	# (DW_AT_decl_line) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x49	# (DW_AT_type) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.uleb128 0x3f	# (DW_AT_external) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.uleb128 0x2	# (DW_AT_location) | 
 | 	.uleb128 0x18	# (DW_FORM_exprloc) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0x9	# (abbrev code) | 
 | 	.uleb128 0x35	# (TAG: DW_TAG_volatile_type) | 
 | 	.byte	0	# DW_children_no | 
 | 	.uleb128 0x49	# (DW_AT_type) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0xa	# (abbrev code) | 
 | 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram) | 
 | 	.byte	0x1	# DW_children_yes | 
 | 	.uleb128 0x3f	# (DW_AT_external) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.uleb128 0x3	# (DW_AT_name) | 
 | 	.uleb128 0x8	# (DW_FORM_string) | 
 | 	.uleb128 0x3a	# (DW_AT_decl_file) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x3b	# (DW_AT_decl_line) | 
 | 	.uleb128 0xb	# (DW_FORM_data1) | 
 | 	.uleb128 0x6e	# (DW_AT_linkage_name) | 
 | 	.uleb128 0xe	# (DW_FORM_strp) | 
 | 	.uleb128 0x3c	# (DW_AT_declaration) | 
 | 	.uleb128 0x19	# (DW_FORM_flag_present) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.uleb128 0xb	# (abbrev code) | 
 | 	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter) | 
 | 	.byte	0	# DW_children_no | 
 | 	.uleb128 0x49	# (DW_AT_type) | 
 | 	.uleb128 0x13	# (DW_FORM_ref4) | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.byte	0 | 
 | 	.section	.debug_aranges,"",@progbits | 
 | 	.long	0x3c	# Length of Address Ranges Info | 
 | 	.value	0x2	# DWARF Version | 
 | 	.long	.Ldebug_info0	# Offset of Compilation Unit Info | 
 | 	.byte	0x8	# Size of Address | 
 | 	.byte	0	# Size of Segment Descriptor | 
 | 	.value	0	# Pad to 16 byte boundary | 
 | 	.value	0 | 
 | 	.quad	.Ltext0	# Address | 
 | 	.quad	.Letext0-.Ltext0	# Length | 
 | 	.quad	.LFB1	# Address | 
 | 	.quad	.LFE1-.LFB1	# Length | 
 | 	.quad	0 | 
 | 	.quad	0 | 
 | 	.section	.debug_ranges,"",@progbits | 
 | .Ldebug_ranges0: | 
 | 	.quad	.Ltext0	# Offset 0 | 
 | 	.quad	.Letext0 | 
 | 	.quad	.LFB1	# Offset 0x10 | 
 | 	.quad	.LFE1 | 
 | 	.quad	0 | 
 | 	.quad	0 | 
 | 	.section	.debug_line,"",@progbits | 
 | .Ldebug_line0: | 
 | 	.section	.debug_str,"MS",@progbits,1 | 
 | .LASF4: | 
 | 	.string	"_Z1gi" | 
 | .LASF3: | 
 | 	.string	"" | 
 | .LASF2: | 
 | 	.string	"gdb.arch/amd64-tailcall-cxx1.cc" | 
 | .LASF1: | 
 | 	.string	"GNU C++ 4.8.0 20130220 (Red Hat 4.8.0-0.14) -mtune=generic -march=x86-64 -g -O2" | 
 | .LASF0: | 
 | 	.string	"main" | 
 | .LASF5: | 
 | 	.string	"_Z1fi" | 
 | 	.ident	"GCC: (GNU) 4.8.0 20130220 (Red Hat 4.8.0-0.14)" | 
 | 	.section	.note.GNU-stack,"",@progbits |