packages: gdb/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch (NEW), gdb...
arekm
arekm at pld-linux.org
Sun Nov 6 11:53:22 CET 2011
Author: arekm Date: Sun Nov 6 10:53:22 2011 GMT
Module: packages Tag: HEAD
---- Log message:
- up to 7.3.1
---- Files affected:
packages/gdb:
gdb-6.6-buildid-locate-rpm-librpm-workaround.patch (NONE -> 1.1) (NEW), gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch (NONE -> 1.1) (NEW), gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch (NONE -> 1.1) (NEW), gdb-bz634108-solib_address.patch (NONE -> 1.1) (NEW), gdb-bz645773-case-insensitive-1of5.patch (NONE -> 1.1) (NEW), gdb-bz645773-case-insensitive-2of5.patch (NONE -> 1.1) (NEW), gdb-bz645773-case-insensitive-3of5.patch (NONE -> 1.1) (NEW), gdb-bz645773-case-insensitive-4of5.patch (NONE -> 1.1) (NEW), gdb-bz701131-readline62-1of3.patch (NONE -> 1.1) (NEW), gdb-bz701131-readline62-2of3.patch (NONE -> 1.1) (NEW), gdb-bz701131-readline62-3of3.patch (NONE -> 1.1) (NEW), gdb-core-thread-internalerr-1of3.patch (NONE -> 1.1) (NEW), gdb-core-thread-internalerr-2of3.patch (NONE -> 1.1) (NEW), gdb-core-thread-internalerr-3of3.patch (NONE -> 1.1) (NEW), gdb-gcc46-stdarg-prologue.patch (NONE -> 1.1) (NEW), gdb-gcc46-typedef.patch (NONE -> 1.1) (NEW), gdb-implptr-64bit-1of2.patch (NONE -> 1.1) (NEW), gdb-implptr-64bit-2of2.patch (NONE -> 1.1) (NEW), gdb-prelink-rela.patch (NONE -> 1.1) (NEW), gdb-rhel5-compat.patch (NONE -> 1.1) (NEW), gdb-rhel5-gcc44.patch (NONE -> 1.1) (NEW), gdb-stap-double-free.patch (NONE -> 1.1) (NEW), gdb-test-bt-cfi-without-die.patch (NONE -> 1.1) (NEW), gdb-test-dw2-aranges.patch (NONE -> 1.1) (NEW), gdb-test-expr-cumulative-archer.patch (NONE -> 1.1) (NEW), gdb-test-pid0-core.patch (NONE -> 1.1) (NEW), gdb-test-pp-hint-error.patch (NONE -> 1.1) (NEW), gdb-vla-frame-set.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/gdb/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
diff -u /dev/null packages/gdb/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,31 @@
+--- ./gdb/elfread.c 2010-10-14 17:07:45.000000000 +0200
++++ ./gdb/elfread.c 2010-10-14 17:06:30.000000000 +0200
+@@ -1382,6 +1382,18 @@ build_id_to_filename (struct build_id *b
+ #include <dlfcn.h>
+ #endif
+
++/* Workarodun https://bugzilla.redhat.com/show_bug.cgi?id=643031
++ librpm must not exit() an application on SIGINT
++
++ Enable or disable a signal handler. SIGNUM: signal to enable (or disable
++ if negative). HANDLER: sa_sigaction handler (or NULL to use
++ rpmsqHandler()). Returns: no. of refs, -1 on error. */
++int
++rpmsqEnable (int signum, /* rpmsqAction_t handler */ void *handler)
++{
++ return 0;
++}
++
+ /* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files
+ and avoid their duplicities during a single inferior run. */
+
+--- ./gdb/proc-service.list 2010-05-28 20:50:30.000000000 +0200
++++ ./gdb/proc-service.list 2010-10-14 17:06:30.000000000 +0200
+@@ -37,4 +37,7 @@
+ ps_pstop;
+ ps_ptread;
+ ps_ptwrite;
++
++ /* gdb-6.6-buildid-locate-rpm.patch */
++ rpmsqEnable;
+ };
================================================================
Index: packages/gdb/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
diff -u /dev/null packages/gdb/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,49 @@
+--- gdb-7.2.50.20110328.orig/gdb/dwarf2read.c 2011-03-30 12:52:20.395450001 +0200
++++ gdb-7.2.50.20110328/gdb/dwarf2read.c 2011-03-30 13:41:55.485450006 +0200
+@@ -66,12 +66,14 @@
+ #ifdef HAVE_ZLIB_H
+ #include <zlib.h>
+ #endif
++#ifndef __sparc__
+ #ifdef HAVE_MMAP
+ #include <sys/mman.h>
+ #ifndef MAP_FAILED
+ #define MAP_FAILED ((void *) -1)
+ #endif
+ #endif
++#endif
+
+ typedef struct symbol *symbolp;
+ DEF_VEC_P (symbolp);
+@@ -1563,6 +1565,7 @@
+ }
+ }
+
++#ifndef __sparc__
+ #ifdef HAVE_MMAP
+ if (pagesize == 0)
+ pagesize = getpagesize ();
+@@ -1589,6 +1592,7 @@
+ }
+ }
+ #endif
++#endif
+
+ /* If we get here, we are a normal, not-compressed section. */
+ info->buffer = buf
+@@ -15439,6 +15443,7 @@
+ {
+ if (info->was_mmapped)
+ {
++#ifndef __sparc__
+ #ifdef HAVE_MMAP
+ intptr_t begin = (intptr_t) info->buffer;
+ intptr_t map_begin = begin & ~(pagesize - 1);
+@@ -15449,6 +15454,7 @@
+ /* Without HAVE_MMAP, we should never be here to begin with. */
+ gdb_assert_not_reached ("no mmap support");
+ #endif
++#endif
+ }
+ }
+
================================================================
Index: packages/gdb/gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch
diff -u /dev/null packages/gdb/gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,43 @@
+2010-06-01 Chris Moller <cmoller at redhat.com>
+
+ * python/libstdcxx/v6/printers.py (StdVectorPrinter): Add
+ detection for matrices as nested vectors.
+
+Index: libstdc++-v3/python/libstdcxx/v6/printers.py
+===================================================================
+--- ./libstdc++-v3-python-r155978/libstdcxx/v6/printers.py (revision 159937)
++++ ./libstdc++-v3-python-r155978/libstdcxx/v6/printers.py (working copy)
+@@ -19,6 +19,9 @@
+ import itertools
+ import re
+
++vector_sig = 'std::vector'
++vector_regex = re.compile('^' + vector_sig + '<.*>$')
++
+ class StdPointerPrinter:
+ "Print a smart pointer of some kind"
+
+@@ -186,7 +189,13 @@
+ % (self.typename, int (finish - start), int (end - start)))
+
+ def display_hint(self):
+- return 'array'
++ itype0 = self.val.type.template_argument(0)
++ itag = itype0.tag
++ if itag and re.match(vector_regex, itag):
++ rc = 'matrix'
++ else:
++ rc = 'array'
++ return rc
+
+ class StdVectorIteratorPrinter:
+ "Print std::vector::iterator"
+@@ -692,7 +701,7 @@
+ pretty_printers_dict[re.compile('^std::set<.*>$')] = lambda val: StdSetPrinter("std::set", val)
+ pretty_printers_dict[re.compile('^std::stack<.*>$')] = lambda val: StdStackOrQueuePrinter("std::stack", val)
+ pretty_printers_dict[re.compile('^std::unique_ptr<.*>$')] = UniquePointerPrinter
+- pretty_printers_dict[re.compile('^std::vector<.*>$')] = lambda val: StdVectorPrinter("std::vector", val)
++ pretty_printers_dict[vector_regex] = lambda val: StdVectorPrinter(vector_sig, val)
+ # vector<bool>
+
+ # Printer registrations for classes compiled with -D_GLIBCXX_DEBUG.
================================================================
Index: packages/gdb/gdb-bz634108-solib_address.patch
diff -u /dev/null packages/gdb/gdb-bz634108-solib_address.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-bz634108-solib_address.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,29 @@
+Fix gdb.solib_address (fix by Phil Muldoon).
+
+--- /dev/null
++++ b/gdb/testsuite/gdb.python/rh634108-solib_address.exp
+@@ -0,0 +1,24 @@
++# Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++# https://bugzilla.redhat.com/show_bug.cgi?id=634108
++
++gdb_exit
++gdb_start
++
++# Skip all tests if Python scripting is not enabled.
++if { [skip_python_tests] } { continue }
++
++gdb_test "python print gdb.solib_address(-1)" "None" "gdb.solib_address exists"
================================================================
Index: packages/gdb/gdb-bz645773-case-insensitive-1of5.patch
diff -u /dev/null packages/gdb/gdb-bz645773-case-insensitive-1of5.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-bz645773-case-insensitive-1of5.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,84 @@
+[patch] Code cleanup: New SYMBOL_HASH_NEXT
+http://sourceware.org/ml/gdb-patches/2011-04/msg00022.html
+http://sourceware.org/ml/gdb-cvs/2011-04/msg00043.html
+
+### src/gdb/ChangeLog 2011/04/06 03:24:22 1.12908
+### src/gdb/ChangeLog 2011/04/06 19:50:03 1.12909
+## -1,3 +1,12 @@
++2011-04-06 Jan Kratochvil <jan.kratochvil at redhat.com>
++
++ Code cleanup.
++ * dictionary.c (dict_hash): Use SYMBOL_HASH_NEXT.
++ * dwarf2read.c (mapped_index_string_hash): Refer to SYMBOL_HASH_NEXT
++ in the function comment, a new note on values compatibility.
++ * minsyms.c (msymbol_hash_iw, msymbol_hash): Use SYMBOL_HASH_NEXT.
++ * symtab.h (SYMBOL_HASH_NEXT): New.
++
+ 2011-04-06 Thiago Jung Bauermann <bauerman at br.ibm.com>
+
+ * ppc-linux-nat.c (check_condition): Add len output parameter.
+--- src/gdb/dictionary.c 2011/01/07 19:36:15 1.21
++++ src/gdb/dictionary.c 2011/04/06 19:50:04 1.22
+@@ -826,7 +826,7 @@
+ }
+ /* FALL THROUGH */
+ default:
+- hash = hash * 67 + *string - 113;
++ hash = SYMBOL_HASH_NEXT (hash, *string);
+ string += 1;
+ break;
+ }
+--- src/gdb/dwarf2read.c 2011/04/04 14:10:12 1.520
++++ src/gdb/dwarf2read.c 2011/04/06 19:50:04 1.521
+@@ -1962,11 +1962,11 @@
+ do_cleanups (cleanup);
+ }
+
+-/* The hash function for strings in the mapped index. This is the
+- same as the hashtab.c hash function, but we keep a separate copy to
+- maintain control over the implementation. This is necessary
+- because the hash function is tied to the format of the mapped index
+- file. */
++/* The hash function for strings in the mapped index. This is the same as
++ SYMBOL_HASH_NEXT, but we keep a separate copy to maintain control over the
++ implementation. This is necessary because the hash function is tied to the
++ format of the mapped index file. The hash values do not have to match with
++ SYMBOL_HASH_NEXT. */
+
+ static hashval_t
+ mapped_index_string_hash (const void *p)
+--- src/gdb/minsyms.c 2011/03/28 20:29:51 1.81
++++ src/gdb/minsyms.c 2011/04/06 19:50:05 1.82
+@@ -91,7 +91,7 @@
+ ++string;
+ if (*string && *string != '(')
+ {
+- hash = hash * 67 + *string - 113;
++ hash = SYMBOL_HASH_NEXT (hash, *string);
+ ++string;
+ }
+ }
+@@ -106,7 +106,7 @@
+ unsigned int hash = 0;
+
+ for (; *string; ++string)
+- hash = hash * 67 + *string - 113;
++ hash = SYMBOL_HASH_NEXT (hash, *string);
+ return hash;
+ }
+
+--- src/gdb/symtab.h 2011/04/04 15:19:59 1.177
++++ src/gdb/symtab.h 2011/04/06 19:50:05 1.178
+@@ -1004,6 +1004,12 @@
+
+ extern unsigned int msymbol_hash (const char *);
+
++/* Compute the next hash value from previous HASH and the character C. This
++ is only a GDB in-memory computed value with no external files compatibility
++ requirements. */
++
++#define SYMBOL_HASH_NEXT(hash, c) ((hash) * 67 + (c) - 113)
++
+ extern struct objfile * msymbol_objfile (struct minimal_symbol *sym);
+
+ extern void
================================================================
Index: packages/gdb/gdb-bz645773-case-insensitive-2of5.patch
diff -u /dev/null packages/gdb/gdb-bz645773-case-insensitive-2of5.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-bz645773-case-insensitive-2of5.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,139 @@
+http://sourceware.org/ml/gdb-patches/2011-04/msg00124.html
+Subject: [patch 1/3] case insensitive: Reformat code
+
+Hi,
+
+just some reformatting to make the later patch more clear. There should be no
+functionality difference by this patch. c1+c2 are a bit ugly but I found any
+other solution a bit ugly.
+
+
+Thanks,
+Jan
+
+
+gdb/
+2011-04-08 Jan Kratochvil <jan.kratochvil at redhat.com>
+
+ Format the code for the next patch.
+ * dwarf2read.c (struct mapped_index): Include delimiting newlines.
+ * utils.c (strcmp_iw_ordered): Reformat the code for the next patch.
+ New variables c1 and c2.
+
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -150,14 +150,19 @@ struct mapped_index
+ {
+ /* The total length of the buffer. */
+ off_t total_size;
++
+ /* A pointer to the address table data. */
+ const gdb_byte *address_table;
++
+ /* Size of the address table data in bytes. */
+ offset_type address_table_size;
++
+ /* The symbol table, implemented as a hash table. */
+ const offset_type *symbol_table;
++
+ /* Size in slots, each slot is 2 offset_types. */
+ offset_type symbol_table_slots;
++
+ /* A pointer to the constant pool. */
+ const char *constant_pool;
+ };
+--- a/gdb/utils.c
++++ b/gdb/utils.c
+@@ -3023,48 +3023,55 @@ strcmp_iw (const char *string1, const char *string2)
+ int
+ strcmp_iw_ordered (const char *string1, const char *string2)
+ {
+- while ((*string1 != '\0') && (*string2 != '\0'))
++ /* Formatting stub. */
++ if (1)
+ {
+- while (isspace (*string1))
+- {
+- string1++;
+- }
+- while (isspace (*string2))
+- {
+- string2++;
+- }
+- if (*string1 != *string2)
++ /* C1 and C2 are valid only if *string1 != '\0' && *string2 != '\0'.
++ Provide stub characters if we are already at the end of one of the
++ strings. */
++ char c1 = 'X', c2 = 'X';
++
++ while (*string1 != '\0' && *string2 != '\0')
+ {
+- break;
++ while (isspace (*string1))
++ string1++;
++ while (isspace (*string2))
++ string2++;
++
++ c1 = *string1;
++ c2 = *string2;
++ if (c1 != c2)
++ break;
++
++ if (*string1 != '\0')
++ {
++ string1++;
++ string2++;
++ }
+ }
+- if (*string1 != '\0')
++
++ switch (*string1)
+ {
+- string1++;
+- string2++;
++ /* Characters are non-equal unless they're both '\0'; we want to
++ make sure we get the comparison right according to our
++ comparison in the cases where one of them is '\0' or '('. */
++ case '\0':
++ if (*string2 == '\0')
++ return 0;
++ else
++ return -1;
++ case '(':
++ if (*string2 == '\0')
++ return 1;
++ else
++ return -1;
++ default:
++ if (*string2 == '\0' || *string2 == '(')
++ return 1;
++ else
++ return c1 - c2;
+ }
+ }
+-
+- switch (*string1)
+- {
+- /* Characters are non-equal unless they're both '\0'; we want to
+- make sure we get the comparison right according to our
+- comparison in the cases where one of them is '\0' or '('. */
+- case '\0':
+- if (*string2 == '\0')
+- return 0;
+- else
+- return -1;
+- case '(':
+- if (*string2 == '\0')
+- return 1;
+- else
+- return -1;
+- default:
+- if (*string2 == '(')
+- return 1;
+- else
+- return *string1 - *string2;
+- }
+ }
+
+ /* A simple comparison function with opposite semantics to strcmp. */
+
================================================================
Index: packages/gdb/gdb-bz645773-case-insensitive-3of5.patch
diff -u /dev/null packages/gdb/gdb-bz645773-case-insensitive-3of5.patch:1.1
--- /dev/null Sun Nov 6 11:53:22 2011
+++ packages/gdb/gdb-bz645773-case-insensitive-3of5.patch Sun Nov 6 11:53:15 2011
@@ -0,0 +1,188 @@
+http://sourceware.org/ml/gdb-patches/2011-04/msg00125.html
+Subject: [patch 2/3] case insensitive: re_comp->regcomp
+
+Hi,
+
+re_comp cannot be passed REG_ICASE. Therefore change the code. The should
+have no functionality impact.
+
+The new boolean field `preg_p' could be maybe replaced by a conditional
+`preg.buffer != NULL' which would work with libiberty regcomp implementation
+but I do not see it guaranteed anywhere. GDB is always using static libiberty
+implementation which I do not see why in the case it is running on glibc.
+But if it gets fixed one day and it starts to use externally linked
+regcomp/regexec I would find the `preg.buffer != NULL' conditional dangerous.
+
+
+Thanks,
+Jan
+
+
+gdb/
+2011-04-08 Jan Kratochvil <jan.kratochvil at redhat.com>
+
+ Replace re_comp/re_exec by regcomp/regexec.
+ * symtab.c (struct search_symbols_data): New fields preg, preg_p.
+ (search_symbols_name_matches): Use them, use regexec.
+ (search_symbols): New variable retval_chain, adjust the use of
+ old_chain against it. Replace re_comp by regcomp. Use the new struct
+ search_symbols_data fields, use regexec instead of re_exec.
+
+Index: gdb-7.2.90.20110429/gdb/symtab.c
+===================================================================
+--- gdb-7.2.90.20110429.orig/gdb/symtab.c 2011-04-29 09:43:33.000000000 +0200
++++ gdb-7.2.90.20110429/gdb/symtab.c 2011-04-29 09:43:55.000000000 +0200
+@@ -2958,7 +2958,10 @@ struct search_symbols_data
+ {
+ int nfiles;
+ char **files;
+- char *regexp;
++
++ /* It is true if PREG contains valid data, false otherwise. */
++ unsigned preg_p : 1;
++ regex_t preg;
+ };
+
+ /* A callback for expand_symtabs_matching. */
+@@ -2976,7 +2979,7 @@ search_symbols_name_matches (const char
+ {
+ struct search_symbols_data *data = user_data;
+
+- return data->regexp == NULL || re_exec (symname);
++ return !data->preg_p || regexec (&data->preg, symname, 0, NULL, 0) == 0;
+ }
+
+ /* Search the symbol table for matches to the regular expression REGEXP,
+@@ -3023,9 +3026,13 @@ search_symbols (char *regexp, domain_enu
+ struct symbol_search *sr;
+ struct symbol_search *psr;
+ struct symbol_search *tail;
+- struct cleanup *old_chain = NULL;
+ struct search_symbols_data datum;
+
++ /* OLD_CHAIN .. RETVAL_CHAIN is always freed, RETVAL_CHAIN .. current
++ CLEANUP_CHAIN is freed only in the case of an error. */
++ struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
++ struct cleanup *retval_chain;
++
+ if (kind < VARIABLES_DOMAIN || kind >= ALL_DOMAIN)
+ error (_("must search on specific domain"));
+
+@@ -3036,6 +3043,7 @@ search_symbols (char *regexp, domain_enu
+
+ sr = *matches = NULL;
+ tail = NULL;
++ datum.preg_p = 0;
+
+ if (regexp != NULL)
+ {
+@@ -3045,6 +3053,7 @@ search_symbols (char *regexp, domain_enu
+ and <TYPENAME> or <OPERATOR>. */
+ char *opend;
+ char *opname = operator_chars (regexp, &opend);
++ int errcode;
+
+ if (*opname)
+ {
+@@ -3073,8 +3082,16 @@ search_symbols (char *regexp, domain_enu
+ }
+ }
+
+- if (0 != (val = re_comp (regexp)))
+- error (_("Invalid regexp (%s): %s"), val, regexp);
++ errcode = regcomp (&datum.preg, regexp, REG_NOSUB);
++ if (errcode != 0)
++ {
++ char *err = get_regcomp_error (errcode, &datum.preg);
++
++ make_cleanup (xfree, err);
++ error (_("Invalid regexp (%s): %s"), err, regexp);
++ }
++ datum.preg_p = 1;
++ make_regfree_cleanup (&datum.preg);
+ }
+
+ /* Search through the partial symtabs *first* for all symbols
+@@ -3083,7 +3100,6 @@ search_symbols (char *regexp, domain_enu
+
+ datum.nfiles = nfiles;
+ datum.files = files;
+- datum.regexp = regexp;
+ ALL_OBJFILES (objfile)
+ {
+ if (objfile->sf)
+@@ -3094,6 +3110,8 @@ search_symbols (char *regexp, domain_enu
+ &datum);
+ }
+
++ retval_chain = old_chain;
++
+ /* Here, we search through the minimal symbol tables for functions
+ and variables that match, and force their symbols to be read.
+ This is in particular necessary for demangled variable names,
+@@ -3117,8 +3135,9 @@ search_symbols (char *regexp, domain_enu
+ MSYMBOL_TYPE (msymbol) == ourtype3 ||
+ MSYMBOL_TYPE (msymbol) == ourtype4)
+ {
+- if (regexp == NULL
+- || re_exec (SYMBOL_NATURAL_NAME (msymbol)) != 0)
++ if (!datum.preg_p
++ || regexec (&datum.preg, SYMBOL_NATURAL_NAME (msymbol), 0,
++ NULL, 0) == 0)
+ {
+ if (0 == find_pc_symtab (SYMBOL_VALUE_ADDRESS (msymbol)))
+ {
+@@ -3156,8 +3175,9 @@ search_symbols (char *regexp, domain_enu
+ QUIT;
+
+ if (file_matches (real_symtab->filename, files, nfiles)
+- && ((regexp == NULL
+- || re_exec (SYMBOL_NATURAL_NAME (sym)) != 0)
++ && ((!datum.preg_p
++ || regexec (&datum.preg, SYMBOL_NATURAL_NAME (sym), 0,
++ NULL, 0) == 0)
+ && ((kind == VARIABLES_DOMAIN
+ && SYMBOL_CLASS (sym) != LOC_TYPEDEF
+ && SYMBOL_CLASS (sym) != LOC_UNRESOLVED
+@@ -3199,7 +3219,7 @@ search_symbols (char *regexp, domain_enu
+ tail = sort_search_symbols (&dummy, nfound);
+ sr = dummy.next;
+
+- old_chain = make_cleanup_free_search_symbols (sr);
++ make_cleanup_free_search_symbols (sr);
+ }
+ else
+ tail = sort_search_symbols (prevtail, nfound);
+@@ -3221,8 +3241,9 @@ search_symbols (char *regexp, domain_enu
+ MSYMBOL_TYPE (msymbol) == ourtype3 ||
+ MSYMBOL_TYPE (msymbol) == ourtype4)
+ {
+- if (regexp == NULL
+- || re_exec (SYMBOL_NATURAL_NAME (msymbol)) != 0)
++ if (!datum.preg_p
++ || regexec (&datum.preg, SYMBOL_NATURAL_NAME (msymbol), 0,
++ NULL, 0) == 0)
+ {
+ /* Functions: Look up by address. */
+ if (kind != FUNCTIONS_DOMAIN ||
+@@ -3244,7 +3265,7 @@ search_symbols (char *regexp, domain_enu
+ if (tail == NULL)
+ {
+ sr = psr;
+- old_chain = make_cleanup_free_search_symbols (sr);
++ make_cleanup_free_search_symbols (sr);
+ }
+ else
+ tail->next = psr;
+@@ -3256,9 +3277,9 @@ search_symbols (char *regexp, domain_enu
+ }
+ }
+
<<Diff was trimmed, longer than 597 lines>>
More information about the pld-cvs-commit
mailing list