OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.dwarf2/] [member-ptr-forwardref.S] - Rev 841

Compare with Previous | Blame | View Log

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

   Copyright 2010 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/>.  */

/* The goal of this test is to provide anonymous DW_TAG_structure_type
   containing __pfn + __delta (read in by quirk_gcc_member_function_pointer)
   before DW_TAG_structure_type of "class C" to exploit the forward reference
   through "__pfn" and back from DW_TAG_member "fp" of "class C".  As the
   compiler may place the DIEs in arbitrary order they are rather prepared as
   a .S file.

   class C;
   typedef int (C::*fp_t) ();
   fp_t fp;
   class C
     {
       int (C::*fp) ();
     } c;  */

        .file   "member-ptr-forwardref.cc"
        .section        .debug_abbrev,"",@progbits
.Ldebug_abbrev0:
        .section        .debug_info,"",@progbits
.Ldebug_info0:
        .section        .debug_line,"",@progbits
.Ldebug_line0:
        .text
.Ltext0:
.globl fp
        .data
        .align 4
        .type   fp, @object
        .size   fp, 8
fp:
        .zero   8
.globl c
        .align 4
        .type   c, @object
        .size   c, 8
c:
        .zero   8
        .text
.Letext0:
        .file 1 "gdb.dwarf2/member-ptr-forwardref.cc"
        .section        .debug_info
        .long   0xa9    /* Length of Compilation Unit Info */
        .2byte  0x3     /* DWARF version number */
        .long   .Ldebug_abbrev0 /* Offset Into Abbrev. Section */
        .byte   0x4     /* Pointer Size (in bytes) */
        .uleb128 0x1    /* (DIE (0xb) DW_TAG_compile_unit) */
        .long   .LASF2  /* DW_AT_producer: "GNU C++ 4.4.2 20091222 (Red Hat 4.4.2-20)" */
        .byte   0x4     /* DW_AT_language */
        .long   .LASF3  /* DW_AT_name: "gdb.dwarf2/member-ptr-forwardref.cc" */
        .long   .LASF4  /* DW_AT_comp_dir: "gdb/testsuite" */
        .long   .Ltext0 /* DW_AT_low_pc */
        .long   .Letext0        /* DW_AT_high_pc */
        .long   .Ldebug_line0   /* DW_AT_stmt_list */
        .uleb128 0x2    /* (DIE (0x25) DW_TAG_typedef) */
        .long   .LASF5  /* DW_AT_name: "fp_t" */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x13    /* DW_AT_decl_line */
        .long   0x30    /* DW_AT_type */
        .uleb128 0x3    /* (DIE (0x30) DW_TAG_structure_type) */
        .byte   0x8     /* DW_AT_byte_size */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x13    /* DW_AT_decl_line */
        .long   0x51    /* DW_AT_sibling */
        .uleb128 0x4    /* (DIE (0x38) DW_TAG_member) */
        .long   .LASF0  /* DW_AT_name: "__pfn" */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x13    /* DW_AT_decl_line */
        .long   0x85    /* DW_AT_type */
        .sleb128 0      /* DW_AT_data_member_location */
        .uleb128 0x4    /* (DIE (0x44) DW_TAG_member) */
        .long   .LASF1  /* DW_AT_name: "__delta" */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x13    /* DW_AT_decl_line */
        .long   0x61    /* DW_AT_type */
        .sleb128 4      /* DW_AT_data_member_location */
        .byte   0x0     /* end of children of DIE 0x30 */
        .uleb128 0x5    /* (DIE (0x51) DW_TAG_subroutine_type) */
        .long   0x61    /* DW_AT_type */
        .long   0x61    /* DW_AT_sibling */
        .uleb128 0x6    /* (DIE (0x5a) DW_TAG_formal_parameter) */
        .long   0x68    /* DW_AT_type */
        .byte   0x1     /* DW_AT_artificial */
        .byte   0x0     /* end of children of DIE 0x51 */
        .uleb128 0x7    /* (DIE (0x61) DW_TAG_base_type) */
        .byte   0x4     /* DW_AT_byte_size */
        .byte   0x5     /* DW_AT_encoding */
        .ascii "int\0"  /* DW_AT_name */
        .uleb128 0x8    /* (DIE (0x68) DW_TAG_pointer_type) */
        .byte   0x4     /* DW_AT_byte_size */
        .long   0x6e    /* DW_AT_type */
        .uleb128 0x9    /* (DIE (0x6e) DW_TAG_structure_type) */
        .ascii "C\0"    /* DW_AT_name */
        .byte   0x8     /* DW_AT_byte_size */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x16    /* DW_AT_decl_line */
        .long   0x85    /* DW_AT_sibling */
        .uleb128 0xa    /* (DIE (0x78) DW_TAG_member) */
        .ascii "fp\0"   /* DW_AT_name */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x17    /* DW_AT_decl_line */
        .long   0x30    /* DW_AT_type */
        .sleb128 0      /* DW_AT_data_member_location */
        .byte   0x3     /* DW_AT_accessibility */
        .byte   0x0     /* end of children of DIE 0x6e */
        .uleb128 0x8    /* (DIE (0x85) DW_TAG_pointer_type) */
        .byte   0x4     /* DW_AT_byte_size */
        .long   0x51    /* DW_AT_type */
        .uleb128 0xb    /* (DIE (0x8b) DW_TAG_variable) */
        .ascii "fp\0"   /* DW_AT_name */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x14    /* DW_AT_decl_line */
        .long   0x25    /* DW_AT_type */
        .byte   0x1     /* DW_AT_external */
        .byte   0x5     /* DW_AT_location */
        .byte   0x3     /* DW_OP_addr */
        .long   fp
        .uleb128 0xb    /* (DIE (0x9c) DW_TAG_variable) */
        .ascii "c\0"    /* DW_AT_name */
        .byte   0x1     /* DW_AT_decl_file (gdb.dwarf2/member-ptr-forwardref.cc) */
        .byte   0x18    /* DW_AT_decl_line */
        .long   0x6e    /* DW_AT_type */
        .byte   0x1     /* DW_AT_external */
        .byte   0x5     /* DW_AT_location */
        .byte   0x3     /* DW_OP_addr */
        .long   c
        .byte   0x0     /* end of children of DIE 0xb */
        .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 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 0x11   /* (DW_AT_low_pc) */
        .uleb128 0x1    /* (DW_FORM_addr) */
        .uleb128 0x12   /* (DW_AT_high_pc) */
        .uleb128 0x1    /* (DW_FORM_addr) */
        .uleb128 0x10   /* (DW_AT_stmt_list) */
        .uleb128 0x6    /* (DW_FORM_data4) */
        .byte   0x0
        .byte   0x0
        .uleb128 0x2    /* (abbrev code) */
        .uleb128 0x16   /* (TAG: DW_TAG_typedef) */
        .byte   0x0     /* DW_children_no */
        .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) */
        .byte   0x0
        .byte   0x0
        .uleb128 0x3    /* (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 0x3a   /* (DW_AT_decl_file) */
        .uleb128 0xb    /* (DW_FORM_data1) */
        .uleb128 0x3b   /* (DW_AT_decl_line) */
        .uleb128 0xb    /* (DW_FORM_data1) */
        .uleb128 0x1    /* (DW_AT_sibling) */
        .uleb128 0x13   /* (DW_FORM_ref4) */
        .byte   0x0
        .byte   0x0
        .uleb128 0x4    /* (abbrev code) */
        .uleb128 0xd    /* (TAG: DW_TAG_member) */
        .byte   0x0     /* DW_children_no */
        .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 0x38   /* (DW_AT_data_member_location) */
        .uleb128 0xd    /* (DW_FORM_sdata) */
        .byte   0x0
        .byte   0x0
        .uleb128 0x5    /* (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 0x1    /* (DW_AT_sibling) */
        .uleb128 0x13   /* (DW_FORM_ref4) */
        .byte   0x0
        .byte   0x0
        .uleb128 0x6    /* (abbrev code) */
        .uleb128 0x5    /* (TAG: DW_TAG_formal_parameter) */
        .byte   0x0     /* DW_children_no */
        .uleb128 0x49   /* (DW_AT_type) */
        .uleb128 0x13   /* (DW_FORM_ref4) */
        .uleb128 0x34   /* (DW_AT_artificial) */
        .uleb128 0xc    /* (DW_FORM_flag) */
        .byte   0x0
        .byte   0x0
        .uleb128 0x7    /* (abbrev code) */
        .uleb128 0x24   /* (TAG: DW_TAG_base_type) */
        .byte   0x0     /* 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   0x0
        .byte   0x0
        .uleb128 0x8    /* (abbrev code) */
        .uleb128 0xf    /* (TAG: DW_TAG_pointer_type) */
        .byte   0x0     /* 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   0x0
        .byte   0x0
        .uleb128 0x9    /* (abbrev code) */
        .uleb128 0x13   /* (TAG: DW_TAG_structure_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 0x3a   /* (DW_AT_decl_file) */
        .uleb128 0xb    /* (DW_FORM_data1) */
        .uleb128 0x3b   /* (DW_AT_decl_line) */
        .uleb128 0xb    /* (DW_FORM_data1) */
        .uleb128 0x1    /* (DW_AT_sibling) */
        .uleb128 0x13   /* (DW_FORM_ref4) */
        .byte   0x0
        .byte   0x0
        .uleb128 0xa    /* (abbrev code) */
        .uleb128 0xd    /* (TAG: DW_TAG_member) */
        .byte   0x0     /* 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 0x38   /* (DW_AT_data_member_location) */
        .uleb128 0xd    /* (DW_FORM_sdata) */
        .uleb128 0x32   /* (DW_AT_accessibility) */
        .uleb128 0xb    /* (DW_FORM_data1) */
        .byte   0x0
        .byte   0x0
        .uleb128 0xb    /* (abbrev code) */
        .uleb128 0x34   /* (TAG: DW_TAG_variable) */
        .byte   0x0     /* 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 0xc    /* (DW_FORM_flag) */
        .uleb128 0x2    /* (DW_AT_location) */
        .uleb128 0xa    /* (DW_FORM_block1) */
        .byte   0x0
        .byte   0x0
        .byte   0x0
        .section        .debug_pubnames,"",@progbits
        .long   0x1b    /* Length of Public Names Info */
        .2byte  0x2     /* DWARF Version */
        .long   .Ldebug_info0   /* Offset of Compilation Unit Info */
        .long   0xad    /* Compilation Unit Length */
        .long   0x8b    /* DIE offset */
        .ascii "fp\0"   /* external name */
        .long   0x9c    /* DIE offset */
        .ascii "c\0"    /* external name */
        .long   0x0
        .section        .debug_pubtypes,"",@progbits
        .long   0x1d    /* Length of Public Type Names Info */
        .2byte  0x2     /* DWARF Version */
        .long   .Ldebug_info0   /* Offset of Compilation Unit Info */
        .long   0xad    /* Compilation Unit Length */
        .long   0x25    /* DIE offset */
        .ascii "fp_t\0" /* external name */
        .long   0x6e    /* DIE offset */
        .ascii "C\0"    /* external name */
        .long   0x0
        .section        .debug_str,"MS",@progbits,1
.LASF5:
        .string "fp_t"
.LASF2:
        .string "GNU C++ 4.4.2 20091222 (Red Hat 4.4.2-20)"
.LASF0:
        .string "__pfn"
.LASF4:
        .string "gdb/testsuite"
.LASF3:
        .string "gdb.dwarf2/member-ptr-forwardref.cc"
.LASF1:
        .string "__delta"
        .ident  "GCC: (GNU) 4.4.2 20091222 (Red Hat 4.4.2-20)"
        .section        .note.GNU-stack,"",@progbits

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.