PR c++/13615
authorKeith Seitz <keiths@redhat.com>
Fri, 16 Nov 2012 20:54:30 +0000 (20:54 +0000)
committerKeith Seitz <keiths@redhat.com>
Fri, 16 Nov 2012 20:54:30 +0000 (20:54 +0000)
commit8dea366bbed7986295681c101dcfbd35aeb6dfc4
tree93ea9e7541e15d6a5701533e7854dc346863854e
parente64e03922ca4da2d3da887a467076eda615c62bd
PR c++/13615
* cp-namespace.c (cp_lookup_symbol_in_namespace): Add SEARCH
parameter and pass it to lookup_symbol_file.
(cp_lookup_symbol_imports): Tell cp_lookup_symbol_in_namespace
to search base classes.
(cp_lookup_symbol_namespace): Likewise.
(lookup_namespace_scope): Likewise.
(lookup_symbol_file): Add SEARCH parameter.
If SEARCH is non-zero and no symbol is found, lookup the class
and call cp_lookup_nested_symbol.
(find_symbol_in_baseclass): New function.
(cp_lookup_nested_symbol): Do not let
cp_lookup_symbol_in_namespace search through base classes.
Do that later when there is no global symbol match.

PR c++/13615
* gdb.cp/baseenum.cc: New file.
* gdb.cp/baseenum.exp: New file.
* gdb.cp/derivation.cc (A): Add copyright.
Add a typedef.
(B): Use A::value_type instead of int.  Change all references.
(D): Use value_type instead of int.  Change all references.
(E): Likewise.
(F); Likewise.
(Z): New class.
(ZZ): New class.
  (N, Base, Derived): New namespace and classes.
(main): Add instances of Z and ZZ.
Make sure all symbols from N are kept.
* gdb.cp/derivation.exp: Update typedef changes in tests.
Add tests for class typedefs both before and after starting
the inferior.
Add tests for searching for a typedef while stopped in a
method.
gdb/ChangeLog
gdb/cp-namespace.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cp/baseenum.cc [new file with mode: 0644]
gdb/testsuite/gdb.cp/baseenum.exp [new file with mode: 0644]
gdb/testsuite/gdb.cp/derivation.cc
gdb/testsuite/gdb.cp/derivation.exp