X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdb_obstack.h;h=3010cb6b10c1e4d6a2ea4ce5414e087ba0e2ab5e;hb=5fe966540d6b748f825774868463003700f0c878;hp=f05fd929f88612fb3bb0b5e8a297bff4255c2112;hpb=7b6bb8daaceb9ecf3f42dea57ae82733d6a3b2f6;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdb_obstack.h b/gdb/gdb_obstack.h index f05fd929f8..3010cb6b10 100644 --- a/gdb/gdb_obstack.h +++ b/gdb/gdb_obstack.h @@ -1,7 +1,6 @@ /* Obstack wrapper for GDB. - Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 2002-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -25,9 +24,12 @@ /* Utility macros - wrap obstack alloc into something more robust. */ -#define OBSTACK_ZALLOC(OBSTACK,TYPE) (memset (obstack_alloc ((OBSTACK), sizeof (TYPE)), 0, sizeof (TYPE))) +#define OBSTACK_ZALLOC(OBSTACK,TYPE) \ + ((TYPE *) memset (obstack_alloc ((OBSTACK), sizeof (TYPE)), 0, sizeof (TYPE))) -#define OBSTACK_CALLOC(OBSTACK,NUMBER,TYPE) (memset (obstack_alloc ((OBSTACK), (NUMBER) * sizeof (TYPE)), 0, (NUMBER) * sizeof (TYPE))) +#define OBSTACK_CALLOC(OBSTACK,NUMBER,TYPE) \ + ((TYPE *) memset (obstack_alloc ((OBSTACK), (NUMBER) * sizeof (TYPE)), \ + 0, (NUMBER) * sizeof (TYPE))) /* Unless explicitly specified, GDB obstacks always use xmalloc() and xfree(). */ @@ -49,4 +51,16 @@ #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; + +/* Duplicate STRING, returning an equivalent string that's allocated on the + obstack OBSTACKP. */ + +extern char *obstack_strdup (struct obstack *obstackp, const char *string); + #endif