From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12131 invoked by alias); 8 Nov 2002 15:16:25 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 12079 invoked from network); 8 Nov 2002 15:16:18 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 8 Nov 2002 15:16:18 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id gA8ErVw30641 for ; Fri, 8 Nov 2002 09:53:31 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id gA8FGIf19319 for ; Fri, 8 Nov 2002 10:16:18 -0500 Received: from localhost.redhat.com (romulus-int.sfbay.redhat.com [172.16.27.46]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id gA8FGGs07988; Fri, 8 Nov 2002 10:16:17 -0500 Received: by localhost.redhat.com (Postfix, from userid 469) id CCDD8FF79; Fri, 8 Nov 2002 10:12:09 -0500 (EST) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15819.54345.691455.308401@localhost.redhat.com> Date: Fri, 08 Nov 2002 07:16:00 -0000 To: Jim Blandy Cc: Adam Fedor , gdb-patches@sources.redhat.com Subject: Re: [PATCH] Objective-C language support. In-Reply-To: References: <3D889A97.90202@doc.com> <3DA37290.74A48BF4@redhat.com> <3DAB86E8.2040704@doc.com> X-SW-Source: 2002-11/txt/msg00222.txt.bz2 this has already been checked in 2002-10-18 Adam Fedor * stabsread.c (find_name_end): New function. (define_symbol): Use it. Elena Jim Blandy writes: > > Looks good to me. > > Adam Fedor writes: > > > Jim Blandy wrote: > > > The function stabsread_objc_colon should be static to stabsread.c, no? > > > If that's so, then it should be renamed to something like > > > `find_name_end', with a comment above the strchr ('[') != 0 case > > > explaining its relevance to Objective-C. Since this function gets > > > called on every symbol, it's not an Objective-C specific function; > > > only part of it is. > > > The code needs a comment. Most of GDB's maintainers don't know > > > Objective-C, so it would be helpful just to say something like, > > > "Objective-C symbols can have names like -[foo:bar:baz]:skun > > > > Updated patch: > > > > 2002-10-14 Adam Fedor > > > > * stabsread.c (find_name_end): New function. > > (define_symbol): Use it. > > > > > > > > > > -- > > Adam Fedor, Digital Optics Corp. | I'm glad I hate spinach, because > > http://www.doc.com | if I didn't, I'd eat it, and you > > | know how I hate the stuff. > > Index: stabsread.c > > =================================================================== > > RCS file: /cvs/src/src/gdb/stabsread.c,v > > retrieving revision 1.42 > > diff -u -p -r1.42 stabsread.c > > --- stabsread.c 11 Oct 2002 14:02:38 -0000 1.42 > > +++ stabsread.c 15 Oct 2002 03:06:03 -0000 > > @@ -169,6 +169,8 @@ static int > > read_cfront_member_functions (struct field_info *, char **, > > struct type *, struct objfile *); > > > > +static char *find_name_end (char *name); > > + > > /* end new functions added for cfront support */ > > > > static void > > @@ -1271,7 +1273,7 @@ define_symbol (CORE_ADDR valu, char *str > > struct objfile *objfile) > > { > > register struct symbol *sym; > > - char *p = (char *) strchr (string, ':'); > > + char *p = (char *) find_name_end (string); > > int deftype; > > int synonym = 0; > > register int i; > > @@ -2004,7 +2006,8 @@ define_symbol (CORE_ADDR valu, char *str > > a typedef for "foo". Unfortunately, cfront never makes the typedef > > when translating C++ into C. We make the typedef here so that > > "ptype foo" works as expected for cfront translated code. */ > > - else if (current_subfile->language == language_cplus) > > + else if ((current_subfile->language == language_cplus) > > + || (current_subfile->language == language_objc)) > > synonym = 1; > > > > SYMBOL_TYPE (sym) = read_type (&p, objfile); > > @@ -5613,6 +5616,32 @@ finish_global_stabs (struct objfile *obj > > patch_block_stabs (global_symbols, global_stabs, objfile); > > xfree (global_stabs); > > global_stabs = NULL; > > + } > > +} > > + > > +static char * > > +find_name_end (char *name) > > +{ > > + char *s = name; > > + /* Find the end of the name, deliminated by a ':', but don't match > > + ObjC symbols which look like -[Foo bar::]:bla. */ > > + if (s[0] == '-' || *s == '+') > > + { > > + /* Must be an ObjC method symbol. */ > > + if (s[1] != '[') > > + { > > + error ("invalid symbol name \"%s\"", name); > > + } > > + s = strchr (s, ']'); > > + if (s == NULL) > > + { > > + error ("invalid symbol name \"%s\"", name); > > + } > > + return strchr (s, ':'); > > + } > > + else > > + { > > + return strchr (s, ':'); > > } > > } > >