diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-24 16:22:51 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-24 16:22:51 +0000 |
commit | 655833ff71f5073c1caa5124df93dab5cb922008 (patch) | |
tree | e21bcbff0304890e7c01194049ad076d6a2a28eb /libiberty | |
parent | c041f442cd424f824022d3338380ecd4576a437d (diff) | |
download | gcc-655833ff71f5073c1caa5124df93dab5cb922008.tar.gz |
libiberty/ChangeLog:
* xasprintf.c: New file.
* Makefile.in (CFILES): Add xasprintf.c.
(REQUIRED_OFILES): Add xasprintf.$(objext).
(xasprintf.$(objext)): New target.
* functions.texi: Regenerate.
include/ChangeLog:
* libiberty.h (xasprintf): Declare.
gcc/ChangeLog:
* gengtype.h (xasprintf): Remove declaration.
* gengtype.c (xasprintf): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219060 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty')
-rw-r--r-- | libiberty/ChangeLog | 10 | ||||
-rw-r--r-- | libiberty/Makefile.in | 21 | ||||
-rw-r--r-- | libiberty/functions.texi | 9 | ||||
-rw-r--r-- | libiberty/xasprintf.c | 50 |
4 files changed, 85 insertions, 5 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index e4a8ce81b25..ac2387552ed 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,13 @@ +2014-12-24 Uros Bizjak <ubizjak@gmail.com> + Ben Elliston <bje@au.ibm.com> + Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + * xasprintf.c: New file. + * Makefile.in (CFILES): Add xasprintf.c. + (REQUIRED_OFILES): Add xasprintf.$(objext). + (xasprintf.$(objext)): New target. + * functions.texi: Regenerate. + 2014-12-11 Uros Bizjak <ubizjak@gmail.com> Ben Elliston <bje@au.ibm.com> Manuel Lopez-Ibanez <manu@gcc.gnu.org> diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in index e7e17af226c..f06cc69a973 100644 --- a/libiberty/Makefile.in +++ b/libiberty/Makefile.in @@ -158,8 +158,8 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \ vasprintf.c vfork.c vfprintf.c vprintf.c vprintf-support.c \ vsnprintf.c vsprintf.c \ waitpid.c \ - xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c \ - xstrndup.c xvasprintf.c + xasprintf.c xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c \ + xstrerror.c xstrndup.c xvasprintf.c # These are always included in the library. The first four are listed # first and by compile time to optimize parallel builds. @@ -190,9 +190,10 @@ REQUIRED_OFILES = \ ./splay-tree.$(objext) ./stack-limit.$(objext) \ ./strerror.$(objext) ./strsignal.$(objext) \ ./timeval-utils.$(objext) ./unlink-if-ordinary.$(objext) \ - ./xatexit.$(objext) ./xexit.$(objext) ./xmalloc.$(objext) \ - ./xmemdup.$(objext) ./xstrdup.$(objext) ./xstrerror.$(objext) \ - ./xstrndup.$(objext) ./xvasprintf.$(objext) + ./xasprintf.$(objext) ./xatexit.$(objext) ./xexit.$(objext) \ + ./xmalloc.$(objext) ./xmemdup.$(objext) ./xstrdup.$(objext) \ + ./xstrerror.$(objext) ./xstrndup.$(objext) \ + ./xvasprintf.$(objext) # These are all the objects that configure may add to the library via # $funcs or EXTRA_OFILES. This list exists here only for "make @@ -1618,6 +1619,16 @@ $(CONFIGURED_OFILES): stamp-picdir stamp-noasandir else true; fi $(COMPILE.c) $(srcdir)/waitpid.c $(OUTPUT_OPTION) +./xasprintf.$(objext): $(srcdir)/xasprintf.c config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/libiberty.h + if [ x"$(PICFLAG)" != x ]; then \ + $(COMPILE.c) $(PICFLAG) $(srcdir)/xasprintf.c -o pic/$@; \ + else true; fi + if [ x"$(NOASANFLAG)" != x ]; then \ + $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xasprintf.c -o noasan/$@; \ + else true; fi + $(COMPILE.c) $(srcdir)/xasprintf.c $(OUTPUT_OPTION) + ./xatexit.$(objext): $(srcdir)/xatexit.c config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/libiberty.h if [ x"$(PICFLAG)" != x ]; then \ diff --git a/libiberty/functions.texi b/libiberty/functions.texi index 39064b4166c..b5f4e809d06 100644 --- a/libiberty/functions.texi +++ b/libiberty/functions.texi @@ -1923,6 +1923,15 @@ if an error occurred while writing to FILE. @end deftypefn +@c xasprintf.c:31 +@deftypefn Replacement char* xasprintf (const char *@var{format}, ...) + +Print to allocated string without fail. If @code{xasprintf} fails, +this will print a message to @code{stderr} (using the name set by +@code{xmalloc_set_program_name}, if any) and then call @code{xexit}. + +@end deftypefn + @c xatexit.c:11 @deftypefun int xatexit (void (*@var{fn}) (void)) diff --git a/libiberty/xasprintf.c b/libiberty/xasprintf.c new file mode 100644 index 00000000000..4f72bb26655 --- /dev/null +++ b/libiberty/xasprintf.c @@ -0,0 +1,50 @@ +/* Implement the xasprintf function. + Copyright (C) 2014 Free Software Foundation, Inc. + Contributed by Manuel Lopez-Ibanez. + +This file is part of the libiberty library. +Libiberty is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +Libiberty 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with libiberty; see the file COPYING.LIB. If not, write +to the Free Software Foundation, Inc., 51 Franklin Street - Fifth +Floor, Boston, MA 02110-1301, USA. */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "ansidecl.h" +#include "libiberty.h" + +#include <stdarg.h> + +/* + +@deftypefn Replacement char* xasprintf (const char *@var{format}, ...) + +Print to allocated string without fail. If @code{xasprintf} fails, +this will print a message to @code{stderr} (using the name set by +@code{xmalloc_set_program_name}, if any) and then call @code{xexit}. + +@end deftypefn + +*/ + +char * +xasprintf (const char *fmt, ...) +{ + char *buf; + va_list ap; + va_start (ap, fmt); + buf = xvasprintf (fmt, ap); + va_end (ap); + return buf; +} |