Hi, $SUBJECT deals with various symbol lookup failures with inherited typedefs. Tom reported these failures in both the expression parser and gdb.lookup_type (part of the python support). The fix for the expression parser is pretty straightforward. We already use cp_lookup_nested_symbol. Simply adding a routine to search through base classes is sufficient to make this work. The python bug is a little trickier. In this case, gdb.lookup_type calls lookup_typename from gdbtypes.c, which is essentially a simple call to lookup_symbol. Here's the big change: With this patch, the C++ version of lookup_symbol (cp_lookup_symbol_nonlocal) will now return a symbol for which a base class defines the name. For example: class A { public: typedef int value_type; }; class B : public A { }; Before this patch: lookup_symbol ("B::value_type", VAR_DOMAIN) ==> NULL After this patch: lookup_symbol ("B::value_type", VAR_DOMAIN) ==> symbol for A::value_type. I don't know if cp_lookup_symbol_nonlocal was intentionally designed this way or not, but IMO, lookup_symbol was virtualized for languages so that they could "do the right thing." For C++, I think searching base classes is the "right thing." (TM) No regressions on x86_64-linux and native gdbserver. Keith ChangeLog 2012-09-12 Keith Seitz c++/13615 * cp-namespace.c (cp_lookup_symbol_nonlocal): If no symbol is found, search through any base classes to find it. (find_symbol_in_baseclass): New function. (cp_lookup_nested_symbol): Search through base classes, too. testsuite/ChangeLog 2012-09-12 Keith Seitz c++/13615 * gdb.cp/derivation.cc (A): 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. (main): Add instances of Z and ZZ. * gdb.cp/derivation.exp: Update typedef changes in tests. Add missing tests for class G. Add tests for class typedefs both before and after starting the inferior. * lib/cp-support.exp (cp_test_ptype_class): Add support for typedefs.