This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug c++/10966] Something fishy with constructors
- From: "pedro at codesourcery dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: 16 Nov 2009 20:07:04 -0000
- Subject: [Bug c++/10966] Something fishy with constructors
- References: <20091116183840.10966.ppluzhnikov@google.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From pedro at codesourcery dot com 2009-11-16 20:07 -------
Subject: Re: Something fishy with constructors
On Monday 16 November 2009 19:38:18, keiths at redhat dot com wrote:
> expr-cumulative should fix (some/all of?) these problems.
Great!
> I am working to get all these patches submitted upstream right now. I
> have, I think, one miscellaneous patch (which is actually Daniel's
> patch), and some ADA failures to investigate. When that's done, I will
> be ready to submit my "mega-patch" from expr-cumulative to get rid of
> linkage_name.
Looking forward for that!
If the new crash bothers people meanwhile, I suppose we could do
a quick bandaid like:
- Have add_matching_methods call lookup_symbol_in_language
with FUNCTIONS_DOMAIN (and make that work) instead of
VAR_DOMAIN. That still looks up for "Foo" multiple
times, so 'b Foo::Foo' would still display multiple entries
for the same constructor...
- Alternatively, do something like:
add_matching_methods:
sym_arr[i1] = lookup_symbol_in_language (phys_name,
NULL, FUNCTIONS_DOMAIN,
language,
(int *) NULL);
- if (sym_arr[i1])
+ /* See PR10966. Remove check on symbol domain and class when
+ we stop using (bad) linkage names on constructors. */
+ if (sym_arr[i1] && (SYMBOL_DOMAIN (sym_arr[i1]) == VAR_DOMAIN
+ && SYMBOL_CLASS (sym_arr[i1]) == LOC_BLOCK))
i1++;
That is, simply ignore bad lookups...
Or just wait --- I'm fine with that. :-)
--
http://sourceware.org/bugzilla/show_bug.cgi?id=10966
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.