summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/cp-namespace.c37
-rw-r--r--gdb/cp-support.h6
-rw-r--r--gdb/dbxread.c35
-rw-r--r--gdb/dwarf2read.c8
5 files changed, 44 insertions, 51 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bb9692b44df..d3c8be4deb1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2013-01-25 Tom Tromey <tromey@redhat.com>
+
+ * cp-namespace.c (cp_set_block_scope): Remove.
+ * cp-support.h (cp_set_block_scope): Remove.
+ * dbxread.c: Include block.h.
+ (cp_set_block_scope): New function.
+ (process_one_symbol): Update.
+ * dwarf2read.c (read_func_scope): Use block_set_scope.
+
2013-01-25 Pedro Alves <palves@redhat.com>
* remote.c (add_current_inferior_and_thread): Tweak comment.
diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c
index 32f6d34997d..c137eec2b7f 100644
--- a/gdb/cp-namespace.c
+++ b/gdb/cp-namespace.c
@@ -205,43 +205,6 @@ cp_add_using_directive (const char *dest,
using_directives = new;
}
-/* Record the namespace that the function defined by SYMBOL was
- defined in, if necessary. BLOCK is the associated block; use
- OBSTACK for allocation. */
-
-void
-cp_set_block_scope (const struct symbol *symbol,
- struct block *block,
- struct obstack *obstack,
- const char *processing_current_prefix,
- int processing_has_namespace_info)
-{
- if (processing_has_namespace_info)
- {
- block_set_scope
- (block, obstack_copy0 (obstack, processing_current_prefix,
- strlen (processing_current_prefix)),
- obstack);
- }
- else if (SYMBOL_DEMANGLED_NAME (symbol) != NULL)
- {
- /* Try to figure out the appropriate namespace from the
- demangled name. */
-
- /* FIXME: carlton/2003-04-15: If the function in question is
- a method of a class, the name will actually include the
- name of the class as well. This should be harmless, but
- is a little unfortunate. */
-
- const char *name = SYMBOL_DEMANGLED_NAME (symbol);
- unsigned int prefix_len = cp_entire_prefix_len (name);
-
- block_set_scope (block,
- obstack_copy0 (obstack, name, prefix_len),
- obstack);
- }
-}
-
/* Test whether or not NAMESPACE looks like it mentions an anonymous
namespace; return nonzero if so. */
diff --git a/gdb/cp-support.h b/gdb/cp-support.h
index 3734886818e..c7141d51cd3 100644
--- a/gdb/cp-support.h
+++ b/gdb/cp-support.h
@@ -189,12 +189,6 @@ extern void cp_add_using_directive (const char *dest,
int copy_names,
struct obstack *obstack);
-extern void cp_set_block_scope (const struct symbol *symbol,
- struct block *block,
- struct obstack *obstack,
- const char *processing_current_prefix,
- int processing_has_namespace_info);
-
extern void cp_scan_for_anonymous_namespaces (const struct symbol *symbol,
struct objfile *objfile);
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index fcd4d821523..09b46a024a0 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -55,6 +55,7 @@
#include "cp-abi.h"
#include "cp-support.h"
#include "psympriv.h"
+#include "block.h"
#include "gdb_assert.h"
#include "gdb_string.h"
@@ -2706,6 +2707,34 @@ read_ofile_symtab (struct objfile *objfile, struct partial_symtab *pst)
}
+/* Record the namespace that the function defined by SYMBOL was
+ defined in, if necessary. BLOCK is the associated block; use
+ OBSTACK for allocation. */
+
+static void
+cp_set_block_scope (const struct symbol *symbol,
+ struct block *block,
+ struct obstack *obstack)
+{
+ if (SYMBOL_DEMANGLED_NAME (symbol) != NULL)
+ {
+ /* Try to figure out the appropriate namespace from the
+ demangled name. */
+
+ /* FIXME: carlton/2003-04-15: If the function in question is
+ a method of a class, the name will actually include the
+ name of the class as well. This should be harmless, but
+ is a little unfortunate. */
+
+ const char *name = SYMBOL_DEMANGLED_NAME (symbol);
+ unsigned int prefix_len = cp_entire_prefix_len (name);
+
+ block_set_scope (block,
+ obstack_copy0 (obstack, name, prefix_len),
+ obstack);
+ }
+}
+
/* This handles a single symbol from the symbol-file, building symbols
into a GDB symtab. It takes these arguments and an implicit argument.
@@ -2813,8 +2842,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
/* For C++, set the block's scope. */
if (SYMBOL_LANGUAGE (new->name) == language_cplus)
- cp_set_block_scope (new->name, block, &objfile->objfile_obstack,
- "", 0);
+ cp_set_block_scope (new->name, block, &objfile->objfile_obstack);
/* May be switching to an assembler file which may not be using
block relative stabs, so reset the offset. */
@@ -3219,8 +3247,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
/* For C++, set the block's scope. */
if (SYMBOL_LANGUAGE (new->name) == language_cplus)
cp_set_block_scope (new->name, block,
- &objfile->objfile_obstack,
- "", 0);
+ &objfile->objfile_obstack);
}
new = push_context (0, valu);
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 6395eca8a55..e4f7b942d90 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -9564,10 +9564,10 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
lowpc, highpc, objfile);
/* For C++, set the block's scope. */
- if (cu->language == language_cplus || cu->language == language_fortran)
- cp_set_block_scope (new->name, block, &objfile->objfile_obstack,
- determine_prefix (die, cu),
- processing_has_namespace_info);
+ if ((cu->language == language_cplus || cu->language == language_fortran)
+ && processing_has_namespace_info)
+ block_set_scope (block, determine_prefix (die, cu),
+ &objfile->objfile_obstack);
/* If we have address ranges, record them. */
dwarf2_record_block_ranges (die, block, baseaddr, cu);