Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Berlin <dberlin@redhat.com>
To: Kevin Buettner <kevinb@cygnus.com>
Cc: Elena Zannoni <ezannoni@cygnus.com>, gdb-patches@sources.redhat.com
Subject: Re: [PATCH]: C++ mangling patch that is about to be committed
Date: Tue, 10 Oct 2000 11:07:00 -0000	[thread overview]
Message-ID: <m34s2ka7tl.fsf@dan2.cygnus.com> (raw)
In-Reply-To: <m38zrwa832.fsf@dan2.cygnus.com>

Daniel Berlin <dberlin@redhat.com> writes:

> Kevin Buettner <kevinb@cygnus.com> writes:
> 
> > On Oct 10, 11:55am, Daniel Berlin wrote:
> > 
> > > Elena Zannoni <ezannoni@cygnus.com> writes:
> > >
> > > > BTW, I thought
> > > > we agreed to leave the do--while construct in the
> > > > SYMBOL_INIT_DEMANGLED_NAME macro.
> > > I'd rather not.
> > > It's not used in if statements, and *never* should be.
> > > The argument that someone, someday, might want to, just isn't
> > > convincing, because they shouldn't.
> > 
> > Daniel,
> > 
> > This is really not the way to handle this kind of change.  Elena is
> > right.  The consensus was to leave the ``do ...  while (0)'' construct
> > in the SYMBOL_INIT_DEMANGLED_NAME macro. 
> 
> No, there was no consensus, we only really discussed *why* it existed that
> way. Nobody provided a convincing reason to keep it the old way, except "It
> was that way". 
> 
> > I believe that turning it
> > into a proper function was also discussed and is regarded as a viable,
> > perhaps even superior, alternative.
> 
> Feel free to do this.
> I'm not playing with symbol tables anymore, I don't have time to wait
> for my patches to get approved.
> 
> > 
> > I know that you don't like the do ... while (0) construct, but it is
> > not right for you to try to sneak changes eliminating it past the
> > maintainer multiple times, particularly when you agreed to leave it
> > in.
> 
> I haven't tried to sneak it in, the elimination exists in every
> repository i've applied any version of the C++ patches to, so i have to hand
> patch every single diff I generate to put it back.
> 
> It's not like I can just magically make it reappear in all the
> repository copies I have around.
> 
> The reality is it exists in the one repository that matters in this
> case:

I actually copied/pasted the wrong macro, i meant:

#define SYMBOL_INIT_DEMANGLED_NAME(symbol,obstack)			\
  do {									\
    char *demangled = NULL;						\
    if (SYMBOL_LANGUAGE (symbol) == language_unknown)			\
	    SYMBOL_LANGUAGE(symbol) = language_auto;			\
    if (SYMBOL_LANGUAGE (symbol) == language_cplus			\
	|| SYMBOL_LANGUAGE (symbol) == language_auto)			\
      {									\
	demangled =							\
	  cplus_demangle (SYMBOL_NAME (symbol), DMGL_PARAMS | DMGL_ANSI);\
	if (demangled != NULL)						\
	  {								\
	    SYMBOL_LANGUAGE (symbol) = language_cplus;			\
	    SYMBOL_CPLUS_DEMANGLED_NAME (symbol) = 			\
	      obsavestring (demangled, strlen (demangled), (obstack));	\
	    free (demangled);						\
	  }								\
	else								\
	  {								\
	    SYMBOL_CPLUS_DEMANGLED_NAME (symbol) = NULL;		\
	  }								\
      }									\
    if (SYMBOL_LANGUAGE (symbol) == language_java)			\
      {									\
	demangled =							\
	  cplus_demangle (SYMBOL_NAME (symbol),				\
			  DMGL_PARAMS | DMGL_ANSI | DMGL_JAVA);		\
	if (demangled != NULL)						\
	  {								\
	    SYMBOL_LANGUAGE (symbol) = language_java;			\
	    SYMBOL_CPLUS_DEMANGLED_NAME (symbol) = 			\
	      obsavestring (demangled, strlen (demangled), (obstack));	\
	    free (demangled);						\
	  }								\
	else								\
	  {								\
	    SYMBOL_CPLUS_DEMANGLED_NAME (symbol) = NULL;		\
	  }								\
      }									\
    if (demangled == NULL						\
	&& (SYMBOL_LANGUAGE (symbol) == language_chill			\
	    || SYMBOL_LANGUAGE (symbol) == language_auto))		\
      {									\
	demangled =							\
	  chill_demangle (SYMBOL_NAME (symbol));			\
	if (demangled != NULL)						\
	  {								\
	    SYMBOL_LANGUAGE (symbol) = language_chill;			\
	    SYMBOL_CHILL_DEMANGLED_NAME (symbol) = 			\
	      obsavestring (demangled, strlen (demangled), (obstack));	\
	    free (demangled);						\
	  }								\
	else								\
	  {								\
	    SYMBOL_CHILL_DEMANGLED_NAME (symbol) = NULL;		\
	  }								\
      }									\
  } while(0)


As you can see, the do/while is clearly there.


> 
> I really resent the implication.
> I split the patches and did modifications based on the existing set of
> patches, which is why the patch has it.
> 
> > 
> > Kevin


  parent reply	other threads:[~2000-10-10 11:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-10  7:20 Daniel Berlin
2000-10-10  8:29 ` Elena Zannoni
     [not found]   ` <m3k8bgadxp.fsf@dan2.cygnus.com>
2000-10-10 10:38     ` Kevin Buettner
     [not found]       ` <m38zrwa832.fsf@dan2.cygnus.com>
2000-10-10 11:07         ` Daniel Berlin [this message]
2000-10-10 11:25     ` Michael Snyder
     [not found]       ` <m3zokc8p3c.fsf@dan2.cygnus.com>
2000-10-10 16:12         ` Elena Zannoni
2000-10-10 17:33           ` Daniel Berlin

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=m34s2ka7tl.fsf@dan2.cygnus.com \
    --to=dberlin@redhat.com \
    --cc=ezannoni@cygnus.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=kevinb@cygnus.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