This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/51950] New: [4.6 Regression] fdebug-types-section regression for member pointers


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51950

             Bug #: 51950
           Summary: [4.6 Regression] fdebug-types-section regression for
                    member pointers
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jan.kratochvil@redhat.com
                CC: ccoutant@gcc.gnu.org, dodji@gcc.gnu.org
            Target: x86_64-unknown-linux-gnu


GDB testsuite:
 ptype F
-type = void (S::*)(S * const)
-(gdb) PASS: gdb.cp/temargs.exp: test type of F in k2_m
+type = void (S::*)(S *, S * const)
+(gdb) FAIL: gdb.cp/temargs.exp: test type of F in k2_m

UNSUPPORTED: gcc (GCC) 4.4.7 20120122 (prerelease) - no DWARF-4
PASS: gcc (GCC) 4.5.4 20120122 (prerelease)
FAIL: gcc (GCC) 4.6.3 20120122 (prerelease) (-fdebug-types-section)
FAIL: gcc (GCC) 4.7.0 20120122 (experimental) -fdebug-types-section
PASS: gcc (GCC) 4.7.0 20120122 (experimental) -fno-debug-types-section

------------------------------------------------------------------------------
struct S {
  void somefunc() {}
};
template<void (S::*F) ()>
struct K2 {
  void k2_m () {} /* line 6 */
};
K2<&S::somefunc> k2;
int main () {
  k2.k2_m ();
  return 0;
}
------------------------------------------------------------------------------
g++ -gdwarf-4 -fdebug-types-section
------------------------------------------------------------------------------
  Compilation Unit @ offset 0x0:
   Signature:     a663cce782d1a2b9
   Type Offset:   0x1d
 <0><17>: Abbrev Number: 1 (DW_TAG_type_unit)
 <1><1d>: Abbrev Number: 2 (DW_TAG_structure_type)
 <2><25>: Abbrev Number: 3 (DW_TAG_member)
    <26>   DW_AT_name        : (indirect string, offset: 0xca): __pfn   
    <2c>   DW_AT_type        : <0x3e>   
 <2><31>: Abbrev Number: 3 (DW_TAG_member)
    <32>   DW_AT_name        : (indirect string, offset: 0x26): __delta 
 <1><3e>: Abbrev Number: 4 (DW_TAG_pointer_type)
    <40>   DW_AT_type        : <0x4b>   
 <1><4b>: Abbrev Number: 6 (DW_TAG_subroutine_type)
    <4c>   DW_AT_object_pointer: <0x59> 
 <2><54>: Abbrev Number: 7 (DW_TAG_formal_parameter)
    <55>   DW_AT_type        : <0x5f>   
    <59>   DW_AT_artificial  : 1        
 <2><59>: Abbrev Number: 7 (DW_TAG_formal_parameter)
    <5a>   DW_AT_type        : <0x5f>   
    <5e>   DW_AT_artificial  : 1        
 <1><5f>: Abbrev Number: 8 (DW_TAG_pointer_type)
    <61>   DW_AT_type        : signature: d93bf8a6a14b2dca      

The DIEs <0x54> is excessive.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]