From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: drow@false.org
Cc: gdb-patches@sourceware.org, hongjiu.lu@intel.com
Subject: Re: PATCH: Initialize tmp_obstack
Date: Sun, 21 Jan 2007 13:07:00 -0000 [thread overview]
Message-ID: <200701211307.l0LD7EO0000187@brahms.sibelius.xs4all.nl> (raw)
In-Reply-To: <20070116065937.GA15794@nevyn.them.org> (message from Daniel Jacobowitz on Tue, 16 Jan 2007 01:59:38 -0500)
> Date: Tue, 16 Jan 2007 01:59:38 -0500
> From: Daniel Jacobowitz <drow@false.org>
>
> On Sun, Dec 24, 2006 at 11:00:32PM -0500, Daniel Jacobowitz wrote:
>
> I'm travelling again - excuse spotty response this week, please. But
> that means I'm hacking on GDB on my laptop again, which is affected by
> this problem.
>
> How can we avoid the uninitialized warnings?
I had another look and come up with the attached. By always
initializing tmp_obstack the code is less optimal, but at least I can
convince myself the code is safe now. Unfortunately I can't test
whether this fixes the GCC 4.1 warnings.
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* cp-valprint.c (cp_print_value_fields, cp_print_value): Always
initialize tmp_obstack.
Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.47
diff -u -p -r1.47 cp-valprint.c
--- cp-valprint.c 9 Jan 2007 17:58:50 -0000 1.47
+++ cp-valprint.c 21 Jan 2007 12:44:23 -0000
@@ -167,7 +167,6 @@ cp_print_value_fields (struct type *type
struct type **dont_print_vb,int dont_print_statmem)
{
int i, len, n_baseclasses;
- struct obstack tmp_obstack;
char *last_dont_print = obstack_next_free (&dont_print_statmem_obstack);
int fields_seen = 0;
@@ -197,12 +196,13 @@ cp_print_value_fields (struct type *type
fprintf_filtered (stream, "<No data fields>");
else
{
+ struct obstack tmp_obstack = dont_print_statmem_obstack;
+
if (dont_print_statmem == 0)
{
/* If we're at top level, carve out a completely fresh
chunk of the obstack and use that until this particular
invocation returns. */
- tmp_obstack = dont_print_statmem_obstack;
obstack_finish (&dont_print_statmem_obstack);
}
@@ -426,9 +426,9 @@ cp_print_value (struct type *type, struc
struct ui_file *stream, int format, int recurse,
enum val_prettyprint pretty, struct type **dont_print_vb)
{
- struct obstack tmp_obstack;
struct type **last_dont_print
= (struct type **) obstack_next_free (&dont_print_vb_obstack);
+ struct obstack tmp_obstack = dont_print_vb_obstack;
int i, n_baseclasses = TYPE_N_BASECLASSES (type);
int thisoffset;
struct type *thistype;
@@ -438,7 +438,6 @@ cp_print_value (struct type *type, struc
/* If we're at top level, carve out a completely fresh
chunk of the obstack and use that until this particular
invocation returns. */
- tmp_obstack = dont_print_vb_obstack;
/* Bump up the high-water mark. Now alpha is omega. */
obstack_finish (&dont_print_vb_obstack);
}
next prev parent reply other threads:[~2007-01-21 13:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-02 18:27 H. J. Lu
2006-12-05 20:40 ` Daniel Jacobowitz
2006-12-05 20:56 ` H. J. Lu
2006-12-05 21:00 ` Daniel Jacobowitz
[not found] ` <12601.163.1.150.229.1165354805.squirrel@webmail.xs4all.nl>
[not found] ` <20061205214306.GA29801@nevyn.them.org>
[not found] ` <20637.163.1.150.229.1165355320.squirrel@webmail.xs4all.nl>
2006-12-05 21:56 ` Daniel Jacobowitz
2006-12-05 21:59 ` Daniel Jacobowitz
2006-12-05 22:24 ` Jim Blandy
2006-12-05 23:58 ` Daniel Jacobowitz
2006-12-07 14:40 ` Daniel Jacobowitz
2006-12-25 4:00 ` Daniel Jacobowitz
2007-01-16 6:59 ` Daniel Jacobowitz
2007-01-16 21:32 ` Mark Kettenis
2007-01-21 13:07 ` Mark Kettenis [this message]
2007-01-21 15:59 ` Daniel Jacobowitz
2007-01-21 17:24 ` Daniel Jacobowitz
2007-02-08 14:21 ` Daniel Jacobowitz
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=200701211307.l0LD7EO0000187@brahms.sibelius.xs4all.nl \
--to=mark.kettenis@xs4all.nl \
--cc=drow@false.org \
--cc=gdb-patches@sourceware.org \
--cc=hongjiu.lu@intel.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