]> git.pld-linux.org Git - packages/gdb.git/blame - gdb-6.3-dtorfix-20050121.patch
- obsolete file
[packages/gdb.git] / gdb-6.3-dtorfix-20050121.patch
CommitLineData
3a58abaf
AM
12005-01-21 Jeff Johnston <jjohnstn@redhat.com>
2
3 * linespec.c (collect_methods): Don't do special processing for
4 destructors as this will be handled in find_methods.
5 (find_methods): Fix ctor check to also check for dtor.
6
72007-10-14 Jan Kratochvil <jan.kratochvil@redhat.com>
8
9 Port to GDB-6.7.
10
11Index: gdb-6.7/gdb/linespec.c
12===================================================================
13--- gdb-6.7.orig/gdb/linespec.c 2007-10-13 05:26:33.000000000 +0200
14+++ gdb-6.7/gdb/linespec.c 2007-10-14 23:31:03.000000000 +0200
15@@ -398,12 +398,14 @@ add_matching_methods (int method_counter
16
17 /* Check for special case of looking for member that
18 doesn't have a mangled name provided. This will happen
19- when we have in-charge and not-in-charge constructors.
20+ when we have in-charge and not-in-charge ctors/dtors.
21 Since we don't have a mangled name to work with, if we
22- look for the symbol, we can only find the class itself.
23+ look for the symbol, we can at best find the class itself.
24 We can find the information we need in the minimal symbol
25 table which has the full member name information we need. */
26- if (strlen (phys_name) <= strlen (class_name))
27+ if (strlen (phys_name) <= strlen (class_name)
28+ || (strlen (phys_name) == strlen (class_name) + 1
29+ && phys_name[0] == '~'))
30 return add_minsym_members (class_name, phys_name, msym_arr);
31
32 /* Destructor is handled by caller, don't add it to
33@@ -1731,6 +1733,11 @@ collect_methods (char *copy, struct type
34 {
35 int i1 = 0; /* Counter for the symbol array. */
36
37+#if 0
38+ /* Ignore this special method for getting destructors because
39+ find_methods is more robust and can handle multiple
40+ destructors which is the case when gcc generates a not-in-charge
41+ vs an in-charge destructor. */
42 if (destructor_name_p (copy, t))
43 {
44 /* Destructors are a special case. */
45@@ -1749,6 +1756,7 @@ collect_methods (char *copy, struct type
46 }
47 }
48 else
49+#endif
50 i1 = find_methods (t, copy, SYMBOL_LANGUAGE (sym_class), sym_arr, msym_arr);
51
52 return i1;
This page took 0.032739 seconds and 4 git commands to generate.