summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/Makefile.in6
-rw-r--r--gdb/gdb_obstack.c47
-rw-r--r--gdb/gdb_obstack.h7
-rw-r--r--gdb/symfile.c26
-rw-r--r--gdb/symfile.h7
6 files changed, 68 insertions, 35 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 74d1dcb0127..6ef74bc4381 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,15 @@
2013-01-21 Tom Tromey <tromey@redhat.com>
+ * gdb_obstack.h (obconcat): Move declaration here, from...
+ * symfile.h (obconcat): ... here.
+ * gdb_obstack.c: New file.
+ (obconcat): Move from...
+ * symfile.c (obconcat): ... here.
+ * Makefile.in (SFILES): Add gdb_obstack.c.
+ (COMMON_OBS): Add gdb_obstack.o.
+
+2013-01-21 Tom Tromey <tromey@redhat.com>
+
* symfile.h (obsavestring): Don't declare.
* symfile.c (obsavestring): Remove.
* ada-exp.y: Use obstack_copy0, not obsavestring.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 7305e6dd8fe..6746e64def4 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -713,7 +713,8 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
exceptions.c expprint.c \
f-exp.y f-lang.c f-typeprint.c f-valprint.c filesystem.c \
findcmd.c findvar.c frame.c frame-base.c frame-unwind.c \
- gdbarch.c arch-utils.c gdb_bfd.c gdbtypes.c gnu-v2-abi.c gnu-v3-abi.c \
+ gdbarch.c arch-utils.c gdb_bfd.c gdb_obstack.c \
+ gdbtypes.c gnu-v2-abi.c gnu-v3-abi.c \
go-exp.y go-lang.c go-typeprint.c go-valprint.c \
inf-loop.c \
infcall.c \
@@ -883,7 +884,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
macrotab.o macrocmd.o macroexp.o macroscope.o \
mi-common.o \
event-loop.o event-top.o inf-loop.o completer.o \
- gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o osabi.o copying.o \
+ gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o \
+ osabi.o copying.o \
memattr.o mem-break.o target.o parse.o language.o buildsym.o \
findcmd.o \
std-regs.o \
diff --git a/gdb/gdb_obstack.c b/gdb/gdb_obstack.c
new file mode 100644
index 00000000000..df34968f3fc
--- /dev/null
+++ b/gdb/gdb_obstack.c
@@ -0,0 +1,47 @@
+/* Obstack wrapper for GDB.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "gdb_obstack.h"
+
+/* Concatenate NULL terminated variable argument list of `const char *'
+ strings; return the new string. Space is found in the OBSTACKP.
+ Argument list must be terminated by a sentinel expression `(char *)
+ NULL'. */
+
+char *
+obconcat (struct obstack *obstackp, ...)
+{
+ va_list ap;
+
+ va_start (ap, obstackp);
+ for (;;)
+ {
+ const char *s = va_arg (ap, const char *);
+
+ if (s == NULL)
+ break;
+
+ obstack_grow_str (obstackp, s);
+ }
+ va_end (ap);
+ obstack_1grow (obstackp, 0);
+
+ return obstack_finish (obstackp);
+}
diff --git a/gdb/gdb_obstack.h b/gdb/gdb_obstack.h
index 96196b705e4..1459ee96b85 100644
--- a/gdb/gdb_obstack.h
+++ b/gdb/gdb_obstack.h
@@ -51,4 +51,11 @@
#define obstack_grow_wstr(OBSTACK, WSTRING) \
obstack_grow (OBSTACK, WSTRING, sizeof (gdb_wchar_t) * gdb_wcslen (WSTRING))
+/* Concatenate NULL terminated variable argument list of `const char
+ *' strings; return the new string. Space is found in the OBSTACKP.
+ Argument list must be terminated by a sentinel expression `(char *)
+ NULL'. */
+
+extern char *obconcat (struct obstack *obstackp, ...) ATTRIBUTE_SENTINEL;
+
#endif
diff --git a/gdb/symfile.c b/gdb/symfile.c
index f610e673b9d..2f872606262 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -151,32 +151,6 @@ static VEC (sym_fns_ptr) *symtab_fns = NULL;
int auto_solib_add = 1;
-/* Concatenate NULL terminated variable argument list of `const char *'
- strings; return the new string. Space is found in the OBSTACKP.
- Argument list must be terminated by a sentinel expression `(char *)
- NULL'. */
-
-char *
-obconcat (struct obstack *obstackp, ...)
-{
- va_list ap;
-
- va_start (ap, obstackp);
- for (;;)
- {
- const char *s = va_arg (ap, const char *);
-
- if (s == NULL)
- break;
-
- obstack_grow_str (obstackp, s);
- }
- va_end (ap);
- obstack_1grow (obstackp, 0);
-
- return obstack_finish (obstackp);
-}
-
/* True if we are reading a symbol table. */
int currently_reading_symtab = 0;
diff --git a/gdb/symfile.h b/gdb/symfile.h
index ad9a4e27c8b..8caec8e048c 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -506,13 +506,6 @@ extern struct section_addr_info
extern void free_section_addr_info (struct section_addr_info *);
-/* Concatenate NULL terminated variable argument list of `const char
- *' strings; return the new string. Space is found in the OBSTACKP.
- Argument list must be terminated by a sentinel expression `(char *)
- NULL'. */
-
-extern char *obconcat (struct obstack *obstackp, ...) ATTRIBUTE_SENTINEL;
-
/* Variables */
/* If non-zero, shared library symbols will be added automatically