2010-01-26 Sami Wagiaalla <swagiaal@redhat.com>

* gdb.cp/namespace-using.exp: Add test for printing of namespaces
	imported into file scope.
	Marked test as xfail.
	* gdb.cp/namespace-using.cc (marker5): New function.
	* gdb.cp/shadow.exp: New test.
	* gdb.cp/shadow.cc: New test program.
	* gdb.cp/nsimport.exp: New test.
	* gdb.cp/nsimport.cc: New test program.

2010-01-26  Sami Wagiaalla  <swagiaal@redhat.com>

	PR gdb/10929:
	* dwarf2read.c (read_lexical_block_scope): Create blocks for
	scopes which contain using directives even if they contain no
	declarations.
	* symtab.c (lookup_symbol_aux): Pass lowest level block to
	la_lookup_symbol_nonlocal.
	* cp-namespace.c (cp_lookup_symbol_nonlocal): call
	cp_lookup_symbol_namespace.
	(cp_lookup_symbol_namespace): Perform an import lookup at every
	block level.
	(cp_lookup_symbol_imports): New function.
	(cp_lookup_symbol_in_namespace): New function.
This commit is contained in:
Sami Wagiaalla
2010-01-26 15:48:25 +00:00
parent 8f95b6e449
commit 8540c487c6
11 changed files with 421 additions and 74 deletions

View File

@@ -1367,13 +1367,14 @@ lookup_symbol_aux (const char *name, const char *linkage_name,
&& block != NULL)
{
struct symbol *sym = NULL;
const struct block *function_block = block;
/* 'this' is only defined in the function's block, so find the
enclosing function block. */
for (; block && !BLOCK_FUNCTION (block);
block = BLOCK_SUPERBLOCK (block));
for (; function_block && !BLOCK_FUNCTION (function_block);
function_block = BLOCK_SUPERBLOCK (function_block));
if (block && !dict_empty (BLOCK_DICT (block)))
sym = lookup_block_symbol (block, langdef->la_name_of_this,
if (function_block && !dict_empty (BLOCK_DICT (function_block)))
sym = lookup_block_symbol (function_block, langdef->la_name_of_this,
NULL, VAR_DOMAIN);
if (sym)
{