Fix ADL anonymous name crash.

2010-06-02  Sami Wagiaalla  <swagiaal@redhat.com>

	* cp-support.c (make_symbol_overload_list_adl_namespace): Handle
	anonymous type case.

2010-06-02  Sami Wagiaalla  <swagiaal@redhat.com>

	* gdb.cp/koenig.exp: Added new test case.
	* gdb.cp/koenig.cc: Ditto.
This commit is contained in:
Sami Wagiaalla 2010-06-02 15:31:30 +00:00
parent d0ef7741c5
commit 7d3fe98e4f
5 changed files with 25 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2010-06-02 Sami Wagiaalla <swagiaal@redhat.com>
* cp-support.c (make_symbol_overload_list_adl_namespace): Handle
anonymous type case.
2010-06-02 Pierre Muller <muller@ics.u-strasbg.fr>
* dwarf2read.c (read_subrange_type): Handle missing base type

View file

@ -752,6 +752,9 @@ make_symbol_overload_list_adl_namespace (struct type *type,
type_name = TYPE_NAME (type);
if (type_name == NULL)
return;
prefix_len = cp_entire_prefix_len (type_name);
if (prefix_len != 0)

View file

@ -1,3 +1,8 @@
2010-06-02 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/koenig.exp: Added new test case.
* gdb.cp/koenig.cc: Ditto.
2010-06-01 Michael Snyder <msnyder@vmware.com>
* gdb.base/arithmet.exp: Use gdb_test_no_output.

View file

@ -175,6 +175,13 @@ typedef O::A TOA;
typedef TOA TTOA;
//------------
static union {
int a;
char b;
}p_union;
//------------
int
main ()
{

View file

@ -64,6 +64,7 @@ gdb_test "p foo(go, fo, eo)" "= 6"
#test that gdb fails gracefully
gdb_test "p fake(eo)" "No symbol \"fake\" in current context."
gdb_test "p foo (fake)" "No symbol \"fake\" in current context."
#test that namespaces of base classes are searched
gdb_test "p foo(io)" "= 7"
@ -104,3 +105,7 @@ gdb_test "p M::N::bar('a')" "= 22"
#test that lookup supports typedef
gdb_test "p foo(ttoa, 'a')" "= 23"
#test that lookup is not thwarted by anonymous types
gdb_test "p foo (p_union)" \
"Cannot resolve function foo to any overloaded instance"