From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13131 invoked by alias); 3 Mar 2003 18:36:45 -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 13123 invoked from network); 3 Mar 2003 18:36:44 -0000 Received: from unknown (HELO jackfruit.Stanford.EDU) (171.64.38.136) by 172.16.49.205 with SMTP; 3 Mar 2003 18:36:44 -0000 Received: (from carlton@localhost) by jackfruit.Stanford.EDU (8.11.6/8.11.6) id h23IaXW02187; Mon, 3 Mar 2003 10:36:33 -0800 X-Authentication-Warning: jackfruit.Stanford.EDU: carlton set sender to carlton@math.stanford.edu using -f To: Elena Zannoni Cc: gdb-patches@sources.redhat.com, Jim Blandy Subject: Re: [rfa] try to remove uses of DEPRECATED_SYMBOL_NAME in symtab.h References: <15970.39249.629140.373607@localhost.redhat.com> From: David Carlton Date: Mon, 03 Mar 2003 18:36:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-03/txt/msg00057.txt.bz2 On 03 Mar 2003 10:04:18 -0800, David Carlton said: > On Sun, 2 Mar 2003 18:52:49 -0500, Elena Zannoni said: >> I think it would make more sense to get rid of the REGEXP macro >> completely. There are only 4 occurrences, and you are really >> simplifying it. This should go in as one commit. >> As a separate commit you can check in the rest of this patch, to fix >> gdb/33. >> i.e. deal with one macro at the time. > Good idea. Here's the regexp patch, which I've just committed; I'll > prepare the other one in a few minutes. And here's the other one, which I've also committed: no changes from the previous version that I submitted (other than, of course, not deleting SYMBOL_MATCHES_REGEXP). David Carlton carlton@math.stanford.edu 2003-03-03 David Carlton * symtab.h (DEPRECATED_SYMBOL_MATCHES_NAME): Rename from SYMBOL_MATCHES_NAME, add comment. (SYMBOL_MATCHES_NATURAL_NAME): New. * minsyms.c (lookup_minimal_symbol_solib_trampoline): Replace SYMBOL_MATCHES_NAME with DEPRECATED_SYMBOL_MATCHES_NAME. (lookup_minimal_symbol, lookup_minimal_symbol_text): Ditto. * symtab.c (lookup_partial_symbol): Use SYMBOL_MATCHES_NATURAL_NAME, not SYMBOL_MATCHES_NAME. Delete unhelpful comment. (lookup_block_symbol): Use SYMBOL_MATCHES_NATURAL_NAME, not SYMBOL_MATCHES_NAME. Fix for PR c++/33. Index: symtab.h =================================================================== RCS file: /cvs/src/src/gdb/symtab.h,v retrieving revision 1.64 diff -u -p -r1.64 symtab.h --- symtab.h 3 Mar 2003 18:01:33 -0000 1.64 +++ symtab.h 3 Mar 2003 18:32:22 -0000 @@ -217,10 +217,23 @@ extern char *symbol_demangled_name (stru "foo :: bar (int, long)". Evaluates to zero if the match fails, or nonzero if it succeeds. */ -#define SYMBOL_MATCHES_NAME(symbol, name) \ +/* FIXME: carlton/2003-02-27: This is an unholy mixture of linkage + names and natural names. If you want to test the linkage names + with strcmp, do that. If you want to test the natural names with + strcmp_iw, use SYMBOL_MATCHES_NATURAL_NAME. */ + +#define DEPRECATED_SYMBOL_MATCHES_NAME(symbol, name) \ (STREQ (DEPRECATED_SYMBOL_NAME (symbol), (name)) \ || (SYMBOL_DEMANGLED_NAME (symbol) != NULL \ && strcmp_iw (SYMBOL_DEMANGLED_NAME (symbol), (name)) == 0)) + +/* Macro that tests a symbol for a match against a specified name + string. It tests against SYMBOL_NATURAL_NAME, and it ignores + whitespace and trailing parentheses. (See strcmp_iw for details + about its behavior.) */ + +#define SYMBOL_MATCHES_NATURAL_NAME(symbol, name) \ + (strcmp_iw (SYMBOL_NATURAL_NAME (symbol), (name)) == 0) /* Define a simple structure used to hold some very basic information about all defined global symbols (text, data, bss, abs, etc). The only required Index: symtab.c =================================================================== RCS file: /cvs/src/src/gdb/symtab.c,v retrieving revision 1.96 diff -u -p -r1.96 symtab.c --- symtab.c 27 Feb 2003 20:48:03 -0000 1.96 +++ symtab.c 27 Feb 2003 22:18:07 -0000 @@ -1423,10 +1423,7 @@ lookup_partial_symbol (struct partial_sy if (!(top == bottom)) internal_error (__FILE__, __LINE__, "failed internal consistency check"); - /* djb - 2000-06-03 - Use SYMBOL_MATCHES_NAME, not a strcmp, so - we don't have to force a linear search on C++. Probably holds true - for JAVA as well, no way to check.*/ - while (top <= real_top && SYMBOL_MATCHES_NAME (*top,name)) + while (top <= real_top && SYMBOL_MATCHES_NATURAL_NAME (*top,name)) { if (SYMBOL_NAMESPACE (*top) == namespace) { @@ -1445,7 +1442,7 @@ lookup_partial_symbol (struct partial_sy { if (namespace == SYMBOL_NAMESPACE (*psym)) { - if (SYMBOL_MATCHES_NAME (*psym, name)) + if (SYMBOL_MATCHES_NATURAL_NAME (*psym, name)) { return (*psym); } @@ -1623,7 +1620,7 @@ lookup_block_symbol (register const stru if (SYMBOL_NAMESPACE (sym) == namespace && (mangled_name ? strcmp (DEPRECATED_SYMBOL_NAME (sym), mangled_name) == 0 - : SYMBOL_MATCHES_NAME (sym, name))) + : SYMBOL_MATCHES_NATURAL_NAME (sym, name))) return sym; } return NULL; @@ -1693,7 +1690,7 @@ lookup_block_symbol (register const stru if (SYMBOL_NAMESPACE (sym) == namespace && (mangled_name ? strcmp (DEPRECATED_SYMBOL_NAME (sym), mangled_name) == 0 - : SYMBOL_MATCHES_NAME (sym, name))) + : SYMBOL_MATCHES_NATURAL_NAME (sym, name))) { return sym; } @@ -1728,7 +1725,7 @@ lookup_block_symbol (register const stru if (SYMBOL_NAMESPACE (sym) == namespace && (mangled_name ? strcmp (DEPRECATED_SYMBOL_NAME (sym), mangled_name) == 0 - : SYMBOL_MATCHES_NAME (sym, name))) + : SYMBOL_MATCHES_NATURAL_NAME (sym, name))) { /* If SYM has aliases, then use any alias that is active at the current PC. If no alias is active at the current Index: minsyms.c =================================================================== RCS file: /cvs/src/src/gdb/minsyms.c,v retrieving revision 1.26 diff -u -p -r1.26 minsyms.c --- minsyms.c 25 Feb 2003 21:36:18 -0000 1.26 +++ minsyms.c 27 Feb 2003 22:18:12 -0000 @@ -188,7 +188,7 @@ lookup_minimal_symbol (register const ch while (msymbol != NULL && found_symbol == NULL) { - if (SYMBOL_MATCHES_NAME (msymbol, name)) + if (DEPRECATED_SYMBOL_MATCHES_NAME (msymbol, name)) { switch (MSYMBOL_TYPE (msymbol)) { @@ -288,7 +288,7 @@ lookup_minimal_symbol_text (register con msymbol != NULL && found_symbol == NULL; msymbol = msymbol->hash_next) { - if (SYMBOL_MATCHES_NAME (msymbol, name) && + if (DEPRECATED_SYMBOL_MATCHES_NAME (msymbol, name) && (MSYMBOL_TYPE (msymbol) == mst_text || MSYMBOL_TYPE (msymbol) == mst_file_text)) { @@ -364,7 +364,7 @@ lookup_minimal_symbol_solib_trampoline ( msymbol != NULL && found_symbol == NULL; msymbol = msymbol->hash_next) { - if (SYMBOL_MATCHES_NAME (msymbol, name) && + if (DEPRECATED_SYMBOL_MATCHES_NAME (msymbol, name) && MSYMBOL_TYPE (msymbol) == mst_solib_trampoline) return msymbol; }