/* This testcase is part of GDB, the GNU debugger.

   Copyright 2012-2021 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 test triggers a crash when a physname for a subprogram has
   a method pointer to an anonymous struct as a parameter.  This
   situation is possible with templates and lambda expressions,
   reproduced here by the following source code:

   class a
   {
    public:
     int doit (void) { return 0; }
   };

  class crash
   {
    public:
     crash (int (a::*mp) (void)) {}
   };

   In order to avoid lambdas, the resulting output has been edited to
   remove the DW_AT_name attribute from the DIEs describing "class a."  */

#define OFFSET(LBL) .Ldie_ ## LBL - .Lcu1_begin

	.section	.debug_info
.Lcu1_begin:
	.4byte	.Lcu1_end - .Lcu1_start /* Length of Compilation Unit Info */
.Lcu1_start:
	.2byte	0x3	/* DWARF version number */
	.4byte	.Labbrev1_begin	/* Offset Into Abbrev. Section */
	.byte	0x4	/* Pointer Size (in bytes) */

.Ldie_b:
	.uleb128 0x1	/* (DIE (0xb) DW_TAG_compile_unit) */
	.ascii	"GNU C++ 4.6.3\0"	/* DW_AT_producer */
	.byte	0x4	/* DW_AT_language */
	.ascii	"anon-member-ptr.cc\0"	/* DW_AT_name */
	.4byte	.Ldebug_line0	/* DW_AT_stmt_list */

.Ldie_31:
	.uleb128 0x2	/* (DIE (0x31) DW_TAG_class_type  */
#if 0
	/* This is the "fudging" part...  */
	.ascii	"a\0"	/* DW_AT_name */
#endif
	.byte	0x1	/* DW_AT_byte_size */

.Ldie_59:
	.uleb128 0x4	/* (DIE (0x59) DW_TAG_base_type */
	.byte	0x4	/* DW_AT_byte_size */
	.byte	0x5	/* DW_AT_encoding */
	.ascii	"int\0"	/* DW_AT_name */

.Ldie_60:
	.uleb128 0x5	/* (DIE (0x60) DW_TAG_pointer_type) */
	.byte	0x4	/* DW_AT_byte_size */
	.4byte	OFFSET (31)	/* DW_AT_type */

.Ldie_66:
	.uleb128 0x6	/* (DIE (0x66) DW_TAG_class_type) */
	.ascii	"crash\0"	/* DW_AT_name */
	.byte	0x1	/* DW_AT_byte_size */
	.4byte	OFFSET (8d)	/* DW_AT_sibling */

.Ldie_72:
	.uleb128 0x7	/* (DIE (0x72) DW_TAG_subprogram) */
	.byte	0x1	/* DW_AT_external */
	.ascii	"crash\0"	/* DW_AT_name */
	.byte	0x1	/* DW_AT_accessibility */
	.byte	0x1	/* DW_AT_declaration */
	.4byte	OFFSET (80)	/* DW_AT_object_pointer */

.Ldie_80:
	.uleb128 0x3	/* (DIE (0x80) DW_TAG_formal_parameter */
	.4byte	OFFSET (8d)	/* DW_AT_type */
	.byte	0x1	/* DW_AT_artificial */

.Ldie_86:
	.uleb128 0x3	/* (DIE (0x86) DW_TAG_formal_parameter */
	.4byte	OFFSET (93)	/* DW_AT_type */
	.byte	0x0	/* DW_AT_artificial */
	.byte	0	/* end of children of DIE 0x72 */
	.byte	0	/* end of children of DIE 0x66 */

.Ldie_8d:
	.uleb128 0x5	/* (DIE (0x8d) DW_TAG_pointer_type */
	.byte	0x4	/* DW_AT_size */
	.4byte	OFFSET (66)	/* DW_AT_type */

.Ldie_93:
	.uleb128 0x8	/* (DIE (0x93) DW_TAG_structure_type */
	.byte	0x10	/* DW_AT_byte_size */
	.4byte	OFFSET (b4)	/* DW_AT_sibling */

.Ldie_9b:
	.uleb128 0x9	/* (DIE (0x9b) DW_TAG_member */
	.ascii	"__pfn\0"	/* DW_AT_name */
	.4byte	OFFSET (c8)	/* DW_AT_type */
	.byte	0	/* DW_AT_data_member_location */

.Ldie_a7:
	.uleb128 0x9	/* (DIE (0xa7) DW_TAG_member */
	.ascii	"__delta\0"	/* DW_AT_name */
	.4byte	OFFSET (ce)	/* DW_AT_type */
	.byte	0x8	/* DW_AT_data_member_location */
	.byte	0	/* end of children of DIE 0x93 */

.Ldie_b4:
	.uleb128 0xa	/* (DIE (0xb4) DW_TAG_subroutine_type) */
	.4byte	OFFSET (59)	/* DW_AT_type */
	.4byte	OFFSET (c1)	/* DW_AT_object_pointer */
	.4byte	OFFSET (c8)	/* DW_AT_sibling */

.Ldie_c1:
	.uleb128 0x3	/* (DIE (0xc1) DW_TAG_formal_parameter) */
	.4byte	OFFSET (60)	/* DW_AT_type */
	.byte	0x1	/* DW_AT_artificial */
	.byte	0	/* end of children of DIE 0xb4 */

.Ldie_c8:
	.uleb128 0x5	/* (DIE (0xc8) DW_TAG_pointer_type) */
	.byte	0x4	/* DW_AT_byte_size */
	.4byte	OFFSET (b4)	/* DW_AT_type */

.Ldie_ce:
	.uleb128 0x4	/* (DIE (0xce) DW_TAG_base_type) */
	.byte	0x8	/* DW_AT_byte_size */
	.byte	0x5	/* DW_AT_encoding */
	.ascii	"long int\0"	/* DW_AT_name */

.Ldie_107:
	.uleb128 0xc	/* (DIE (0x107) DW_TAG_subprogram) */
	.4byte	OFFSET (72)	/* DW_AT_specification */
	.byte	0x2	/* DW_AT_inline */
	.4byte	OFFSET (115)	/* DW_AT_object_pointer */
	.4byte	OFFSET (12a)	/* DW_AT_sibling */

.Ldie_115:
	.uleb128 0xd	/* (DIE (0x115) DW_TAG_formal_parameter) */
	.ascii	"this\0"	/* DW_AT_name */
	.4byte	OFFSET (12a)	/* DW_AT_type */
	.byte	0x1	/* DW_AT_artificial */

.Ldie_11f:
	.uleb128 0xd	/* (DIE (0x11f) DW_TAG_formal_parameter) */
	.ascii	"mp\0"	/* DW_AT_name */
	.4byte	OFFSET (93)	/* DW_AT_type */
	.byte	0x0	/* DW_AT_artificial */
	.byte	0	/* end of children of DIE 0x107 */

.Ldie_12a:
	.uleb128 0xb	/* (DIE (0x12a) DW_TAG_const_type) */
	.4byte	OFFSET (8d)	/* DW_AT_type */

.Ldie_12f:
	.uleb128 0xe	/* (DIE (0x12f) DW_TAG_subprogram) */
	.4byte	OFFSET (107)	/* DW_AT_abstract_origin */
	.4byte	0x20	/* DW_AT_low_pc */
	.4byte	0x2c	/* DW_AT_high_pc */
	.4byte	OFFSET (14e)	/* DW_AT_object_pointer */

.Ldie_14e:
	.uleb128 0xf	/* (DIE (0x14e) DW_TAG_formal_parameter) */
	.4byte	OFFSET (115)	/* DW_AT_abstract_origin */
	.byte	0x2	/* DW_AT_location */
	.byte	0x91
	.sleb128 -24

.Ldie_156:
	.uleb128 0xf	/* (DIE (0x156) DW_TAG_formal_parameter) */
	.4byte	OFFSET (11f)	/* DW_at_abstract_origin */
	.byte	0x2	/* DW_AT_location */
	.byte	0x91
	.sleb128 -40
	.byte	0	/* end of children of DIE 0x12f */
	.byte	0	/* end of children of DIE 0x5b */
.Lcu1_end:

/* Abbrev table */
	.section	.debug_abbrev
	.uleb128 0x1	/* (abbrev code) */
	.uleb128 0x11	/* (TAG: DW_TAG_compile_unit) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0x25	/* (DW_AT_producer) */
	.uleb128 0x8	/* (DW_FORM_string) */
	.uleb128 0x13	/* (DW_AT_language) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.uleb128 0x3	/* (DW_AT_name) */
	.uleb128 0x8	/* (DW_FORM_string) */
	.uleb128 0x10	/* (DW_AT_stmt_list) */
	.uleb128 0x6	/* (DW_FORM_data4) */
	.byte	0
	.byte	0

	.uleb128 0x2	/* (abbrev code) */
	.uleb128 0x2	/* (TAG: DW_TAG_class_type) */
	.byte	0x0	/* DW_children_no */
#if 0
	/* This is the "fudging" part...  */
	.uleb128 0x3	/* (DW_AT_name) */
	.uleb128 0x8	/* (DW_FORM_string) */
#endif
	.uleb128 0xb	/* (DW_AT_byte_size) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.byte	0
	.byte	0

	.uleb128 0x3	/* (abbrev code) */
	.uleb128 0x5	/* (TAG: DW_TAG_formal_parameter) */
	.byte	0	/* DW_children_no */
	.uleb128 0x49	/* (DW_AT_type) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x34	/* (DW_AT_artificial) */
	.uleb128 0xc	/* (DW_FORM_flag) */
	.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 0xf	/* (TAG: DW_TAG_pointer_type) */
	.byte	0	/* DW_children_no */
	.uleb128 0xb	/* (DW_AT_byte_size) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.uleb128 0x49	/* (DW_AT_type) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0x6	/* (abbrev code) */
	.uleb128 0x2	/* (TAG: DW_TAG_class_type) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0x3	/* (DW_AT_name) */
	.uleb128 0x8	/* (DW_FORM_string) */
	.uleb128 0xb	/* (DW_AT_byte_size) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.uleb128 0x1	/* (DW_AT_sibling) */
	.uleb128 0x13
	.byte	0
	.byte	0

	.uleb128 0x7	/* (abbrev code) */
	.uleb128 0x2e	/* (TAG: DW_TAG_subprogram) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0x3f	/* (DW_AT_external) */
	.uleb128 0xc	/* (DW_FORM_flag) */
	.uleb128 0x3	/* (DW_AT_name) */
	.uleb128 0x8	/* (DW_FORM_string) */
	.uleb128 0x32	/* (DW_AT_accessibility) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.uleb128 0x3c	/* (DW_AT_declaration) */
	.uleb128 0xc	/* (DW_FORM_flag) */
	.uleb128 0x64	/* (DW_AT_object_pointer) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0x8	/* (abbrev code) */
	.uleb128 0x13	/* (TAG: DW_TAG_structure_type) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0xb	/* (DW_AT_byte_size) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.uleb128 0x1	/* (DW_AT_sibling) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0x9	/* (abbrev code) */
	.uleb128 0xd	/* (TAG: DW_TAG_member) */
	.byte	0	/* DW_children_no */
	.uleb128 0x3	/* (DW_AT_name) */
	.uleb128 0x8	/* (DW_FORM_string) */
	.uleb128 0x49	/* (DW_AT_type) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x38	/* (DW_AT_data_member_location) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.byte	0
	.byte	0

	.uleb128 0xa	/* (abbrev code) */
	.uleb128 0x15	/* (TAG: DW_TAG_subroutine_type) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0x49	/* (DW_AT_type) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x64	/* (DW_AT_object_pointer) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x1	/* (DW_AT_sibling) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0xb	/* (abbrev code) */
	.uleb128 0x26	/* (TAG: DW_TAG_const_type) */
	.byte	0	/* DW_children_no */
	.uleb128 0x49	/* (DW_AT_type) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0xc	/* (abbrev code) */
	.uleb128 0x2e	/* (TAG: DW_TAG_subprogram) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0x47	/* (DW_AT_specification) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x20	/* (DW_AT_inline) */
	.uleb128 0xb	/* (DW_FORM_data1) */
	.uleb128 0x64	/* (DW_AT_object_pointer) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x1	/* (DW_AT_sibling) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0xd	/* (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 0x49	/* (DW_AT_type) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x34	/* (DW_AT_artificial) */
	.uleb128 0xc	/* (DW_FORM_flag) */
	.byte	0
	.byte	0

	.uleb128 0xe	/* (abbrev code) */
	.uleb128 0x2e	/* (TAG: DW_TAG_subprogram) */
	.byte	0x1	/* DW_children_yes */
	.uleb128 0x31	/* (DW_AT_abstract_origin) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x11	/* (DW_AT_low_pc) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x12	/* (DW_AT_high_pc) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x64	/* (DW_AT_object_pointer) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.byte	0
	.byte	0

	.uleb128 0xf	/* (abbrev code) */
	.uleb128 0x5	/* (TAG: DW_TAG_formal_parameter) */
	.byte	0	/* DW_children_no */
	.uleb128 0x31	/* (DW_AT_abstract_origin) */
	.uleb128 0x13	/* (DW_FORM_ref4) */
	.uleb128 0x2	/* (DW_AT_location) */
	.uleb128 0xa	/* (DW_FORM_block) */
	.byte	0
	.byte	0
	.byte	0

	.section	.debug_line
.Ldebug_line0:
