PR c++/18141
authorDoug Evans <dje@google.com>
Mon, 30 Mar 2015 23:41:05 +0000 (16:41 -0700)
committerDoug Evans <dje@google.com>
Mon, 30 Mar 2015 23:41:05 +0000 (16:41 -0700)
gdb/ChangeLog:

PR c++/18141
* cp-namespace.c (cp_search_static_and_baseclasses): Always look for
klass in VAR_DOMAIN.

gdb/ChangeLog
gdb/cp-namespace.c

index 651383f5a287ab46f1f14d2985e675254a9852ce..6c4bbe5eb0e04b3e8e07b5caf4722cb2535df52b 100644 (file)
@@ -1,3 +1,9 @@
+2015-03-30  Doug Evans  <dje@google.com>
+
+       PR c++/18141
+       * cp-namespace.c (cp_search_static_and_baseclasses): Always look for
+       klass in VAR_DOMAIN.
+
 2015-03-30  Gary Benson <gbenson@redhat.com>
 
        * remote.c (remote_mourn_1): Remove function.  Update all callers
index 4a00cb62e6679e3125adb669dfc091da3fa9fc65..0feeb35ba674ac112f16835aad22122016d92a04 100644 (file)
@@ -355,8 +355,11 @@ cp_search_static_and_baseclasses (const char *name,
   make_cleanup (xfree, nested);
 
   /* Lookup a class named KLASS.  If none is found, there is nothing
-     more that can be done.  */
-  klass_sym = lookup_global_symbol (klass, block, domain);
+     more that can be done.  KLASS could be a namespace, so always look
+     in VAR_DOMAIN.  This works for classes too because of
+     symbol_matches_domain (which should be replaced with something else,
+     but it's what we have today).  */
+  klass_sym = lookup_global_symbol (klass, block, VAR_DOMAIN);
   if (klass_sym == NULL)
     {
       do_cleanups (cleanup);