aboutsummaryrefslogtreecommitdiff
path: root/gdb/linespec.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2002-05-11 22:46:19 +0000
committerDaniel Jacobowitz <drow@false.org>2002-05-11 22:46:19 +0000
commit5c71744046ab6fb78f798564ad9d151a1a8cda5e (patch)
treebc049e1e01925571cc3cecf5b8c8630b3c22db00 /gdb/linespec.c
parent6c7861b3c0d2d87a0fb9b6d99865bd5da78b9173 (diff)
downloadgdb-5c71744046ab6fb78f798564ad9d151a1a8cda5e.zip
gdb-5c71744046ab6fb78f798564ad9d151a1a8cda5e.tar.gz
gdb-5c71744046ab6fb78f798564ad9d151a1a8cda5e.tar.bz2
2002-05-11 Daniel Jacobowitz <drow@mvista.com>
From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>: * linespec.c (find_methods): Handle GCC 3.x template constructors.
Diffstat (limited to 'gdb/linespec.c')
-rw-r--r--gdb/linespec.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/linespec.c b/gdb/linespec.c
index f707234..8e51021 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -130,6 +130,7 @@ find_methods (struct type *t, char *name, struct symbol **sym_arr)
(struct symtab **) NULL)))
{
int method_counter;
+ int name_len = strlen (name);
CHECK_TYPEDEF (t);
@@ -202,7 +203,9 @@ find_methods (struct type *t, char *name, struct symbol **sym_arr)
*/
}
}
- else if (strcmp_iw (class_name, name) == 0)
+ else if (strncmp (class_name, name, name_len) == 0
+ && (class_name[name_len] == '\0'
+ || class_name[name_len] == '<'))
{
/* For GCC 3.x and stabs, constructors and destructors have names
like __base_ctor and __complete_dtor. Check the physname for now