gdb  User: guest  Access: viewconf gnatsweb
MAIN PAGECREATEQUERYADV. QUERYLOGIN AGAINHELP

View Problem Report: 483

or add note or send email to interested parties


Reporter's email: mec@shout.net
CC these people
on PR status email:
   
Number: 483
Category: c++
Synopsis: gdb.c++/local.exp: ptype Local
Confidential: no
Severity: serious
Priority: medium
Responsible: unassigned
State: open
Class: sw-bug
Submitter-Id: net
Arrival-Date: Fri Apr 12 11:48:00 PDT 2002
Closed-Date:
Last-Modified: Tue Oct 28 19:08:00 UTC 2003
Originator: mec@shout.net
Release: gdb HEAD%20020411
Organization:
Environment: target = native, host = i686-pc-linux-gnu%rh-7.2, gdb = HEAD%20020411, gcc = 3.0.4, goption = -gdwarf-2
Description: Excerpt from gdb.log:

  ptype Local^M
  type = class Local {^M
    public:^M
      int loc1;^M
^M
      char loc_foo(const char);^M
      char loc_foo(const char);^M
  }^M
  (gdb) FAIL: gdb.c++/local.exp: ptype Local (double loc_foo)

Note the double occurrence of method "loc_foo".

This happens with -gdwarf-2 with gcc 2.96-rh, gcc 3.0.4, gcc gcc-3_1-branch%20020411, gcc HEAD%20020411.  This does not happen with -gdwarf-2 with gcc 2.95.3.  This does not happen with -gstabs+ with any of the five compilers listed.

See also:

ftp://ftp.shout.net/pub/users/mec/gdb/2002-04-11,native,i686-pc-linux-gnu%rh-7.2,HEAD,3.0.4,g-dwarf-2.tar.gz
ftp://ftp.shout.net/pub/users/mec/gdb/2002-04-11,HEAD,testsuite-src.tar.gz
File Attachments:
How-To-Repeat: Run test script gdb.c++/local.exp on native i686-pc-linux-gnu.
Fix:
Release-Note:
Unformatted:

or send email to interested parties

Audit Trail:

From: Daniel Jacobowitz <drow@mvista.com>
To: mec@shout.net
Cc: gdb-gnats@sources.redhat.com
Subject: Re: gdb/483: gdb.c++/local.exp: ptype Local
Date: Fri, 12 Apr 2002 20:30:46 -0400

 On Fri, Apr 12, 2002 at 06:38:45PM -0000, mec@shout.net wrote:
 > 
 > >Number:         483
 > >Category:       gdb
 > >Synopsis:       gdb.c++/local.exp: ptype Local
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       medium
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Fri Apr 12 11:48:00 PDT 2002
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     mec@shout.net
 > >Release:        gdb HEAD%20020411
 > >Organization:
 > >Environment:
 > target = native, host = i686-pc-linux-gnu%rh-7.2, gdb = HEAD%20020411, gcc = 3.0.4, goption = -gdwarf-2
 > >Description:
 > Excerpt from gdb.log:
 > 
 >   ptype Local^M
 >   type = class Local {^M
 >     public:^M
 >       int loc1;^M
 > ^M
 >       char loc_foo(const char);^M
 >       char loc_foo(const char);^M
 >   }^M
 >   (gdb) FAIL: gdb.c++/local.exp: ptype Local (double loc_foo)
 > 
 > Note the double occurrence of method "loc_foo".
 > 
 > This happens with -gdwarf-2 with gcc 2.96-rh, gcc 3.0.4, gcc gcc-3_1-branch%20020411, gcc HEAD%20020411.  This does not happen with -gdwarf-2 with gcc 2.95.3.  This does not happen with -gstabs+ with any of the five compilers listed.
 > 
 > See also:
 > 
 >  
        ftp://ftp.shout.net/pub/users/mec/gdb/2002-04-11,native,i686-pc-linux-gnu%rh-7.2,HEAD,3.0.4,g-dwarf-2.tar.gz
 >  
        ftp://ftp.shout.net/pub/users/mec/gdb/2002-04-11,HEAD,testsuite-src.tar.gz
 > >How-To-Repeat:
 > Run test script gdb.c++/local.exp on native i686-pc-linux-gnu.
 
 Could you check (via readelf) if one of the loc_foo copies has
 DW_AT_artificial set?
 
 -- 
 Daniel Jacobowitz                           Carnegie Mellon University
 MontaVista Software                         Debian GNU/Linux Developer

From: Daniel Jacobowitz <drow@mvista.com>
To: gdb-gnats@sources.redhat.com
Cc:  
Subject: Re: gdb/483: gdb.c++/local.exp: ptype Local
Date: Sat, 21 Jun 2003 18:19:04 -0400

 On Fri, Apr 12, 2002 at 08:31:34PM -0500, Michael Elizabeth Chastain wrote:
 > readelf on gdb.c++/local says:
 > 
 >   <3><12f>: Abbrev Number: 11 (DW_TAG_subprogram)
 >        DW_AT_sibling     : <158>
 >        DW_AT_name        : loc_foo
 >        DW_AT_decl_file   : 1
 >        DW_AT_decl_line   : 14
 >        DW_AT_type        : <1bf>
 >        DW_AT_inline      : 2      (declared as inline but ignored)
 > 
 > That is the only loc_foo in the whole listing.
 > 
 > By the way, you can grab the binary yourself.  It's in the first tarball
 > mentioned in the bug report.
 
 This is caused by the second reference to loc_foo, via a
 DW_AT_abstract_origin.  Methods with an abstract_origin should not be
 added to the class's methods list.  This goes with the collection of
 things to fix in dwarf2read.
 
 -- 
 Daniel Jacobowitz
 MontaVista Software                         Debian GNU/Linux Developer

From: Michael Elizabeth Chastain <mec@shout.net>
To: gdb-gnats@sources.redhat.com
Cc:  
Subject: Re: gdb/483
Date: Tue, 28 Oct 2003 14:07:05 -0500

 This bug no longer happens with gcc HEAD 2003-10-21.
 It was fixed some time between gcc HEAD 2003-20-21 and gcc HEAD 2003-10-26.
 
 So now it works with:
 
   gcc 2.95.3
   gcc HEAD 2003-10-26
 
 So after gcc 3.4 is released (projected April 2004),
 this PR can revisited and probably closed.
 
 Michael C