aboutsummaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2014-12-24 16:22:51 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2014-12-24 16:22:51 +0000
commit655833ff71f5073c1caa5124df93dab5cb922008 (patch)
treee21bcbff0304890e7c01194049ad076d6a2a28eb /libiberty
parentc041f442cd424f824022d3338380ecd4576a437d (diff)
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/ChangeLog10
-rw-r--r--libiberty/Makefile.in21
-rw-r--r--libiberty/functions.texi9
-rw-r--r--libiberty/xasprintf.c50
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;
+}