Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@gnat.com>
To: Elena Zannoni <ezannoni@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA/dwarf-2] Fix for the null record problem
Date: Thu, 01 Apr 2004 01:18:00 -0000	[thread overview]
Message-ID: <20040401011813.GE888@gnat.com> (raw)
In-Reply-To: <16437.11835.435941.553479@localhost.redhat.com>

Hello Elena,

> Let's try the Vulcan mind meld: "We need a gdb.ada directory. We need
> a gdb.ada directory. We need a gdb.ada directory. We need a gdb.ada
> directory." :-) 

OK, now done| :-)

> Seriously, I'd like to see a testcase that FAIL->PASS with this patch.
> Can somebody get a C++ testcase, at least?

With this patch, we see a test in gdb.ada/null_record.exp FAIL->PASS.

> the patch looks sensible, but I would like to see the testcase go in
> at the same time, or we'll forget.

I've checked that the patch below is still applicable. Would you mind
reviewing it and let me know if it's ok to check it in?

Thank you,
-- 
Joel

>  > I have found the source of the problem, and suggest the attached patch.
>  > The problem was that GDB was mistakenly deducing that the empry record
>  > was only a stub because of the lack of fields, and was therefore tagging
>  > it with TYPE_FLAG_STUB. This is not correct. Instead, the right
>  > approach, I believe, is to check for the DW_AT_declaration attribute.
>  > 
>  > 2004-02-19  J. Brobecker  <brobecker@gnat.com>
>  > 
>  >         * dwarf2read.c (read_structure_scope): Identify stub types
>  >         using the DW_AT_declaration attribute.
>  > 
>  > tested on x86-linux. No regression. Fixes the testcase that was
>  > proposed by Andrew (even though it is not legal C) and the Ada
>  > case.
>  > 
>  > OK to apply?
>  > 
>  > Thanks,
>  > -- 
>  > Joel
>  > 
>  > Index: dwarf2read.c
>  > ===================================================================
>  > RCS file: /cvs/src/src/gdb/dwarf2read.c,v
>  > retrieving revision 1.130
>  > diff -u -p -r1.130 dwarf2read.c
>  > --- dwarf2read.c	28 Jan 2004 18:43:06 -0000	1.130
>  > +++ dwarf2read.c	19 Feb 2004 13:58:42 -0000
>  > @@ -3077,6 +3077,9 @@ read_structure_scope (struct die_info *d
>  >        TYPE_LENGTH (type) = 0;
>  >      }
>  >  
>  > +  if (dwarf2_attr (die, DW_AT_declaration, cu) != NULL)
>  > +    TYPE_FLAGS (type) |= TYPE_FLAG_STUB;
>  > +
>  >    /* We need to add the type field to the die immediately so we don't
>  >       infinitely recurse when dealing with pointers to the structure
>  >       type within the structure itself. */
>  > @@ -3213,11 +3216,6 @@ read_structure_scope (struct die_info *d
>  >        new_symbol (die, type, cu);
>  >  
>  >        do_cleanups (back_to);
>  > -    }
>  > -  else
>  > -    {
>  > -      /* No children, must be stub. */
>  > -      TYPE_FLAGS (type) |= TYPE_FLAG_STUB;
>  >      }
>  >  
>  >    processing_current_prefix = previous_prefix;


  parent reply	other threads:[~2004-04-01  1:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-19 14:01 Joel Brobecker
2004-02-19 21:52 ` Elena Zannoni
2004-02-19 23:29   ` Andrew Cagney
2004-02-19 23:37   ` Joel Brobecker
2004-02-26  2:31   ` Joel Brobecker
2004-02-26  3:27     ` Daniel Jacobowitz
2004-02-26 19:00       ` Joel Brobecker
2004-04-01  1:18   ` Joel Brobecker [this message]
2004-04-13  5:26     ` Joel Brobecker
2004-04-14 17:24       ` Jim Blandy
2004-04-14 17:47         ` Daniel Jacobowitz
2004-04-15  5:01           ` Jim Blandy
2004-04-15 20:43             ` Joel Brobecker
2004-04-16  3:18               ` Joel Brobecker
2004-04-16  3:59                 ` Jim Blandy
2004-04-15  5:33           ` Jim Blandy
2004-02-26 19:49 Michael Elizabeth Chastain
2004-02-26 20:23 ` Joel Brobecker
2004-02-26 21:34 Michael Elizabeth Chastain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040401011813.GE888@gnat.com \
    --to=brobecker@gnat.com \
    --cc=ezannoni@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox