Coverage Report

Created: 2025-06-24 06:45

/src/binutils-gdb/libiberty/xasprintf.c
Line
Count
Source
1
/* Implement the xasprintf function.
2
   Copyright (C) 2014-2025 Free Software Foundation, Inc.
3
   Contributed by Manuel Lopez-Ibanez.
4
5
This file is part of the libiberty library.
6
Libiberty is free software; you can redistribute it and/or
7
modify it under the terms of the GNU Library General Public
8
License as published by the Free Software Foundation; either
9
version 2 of the License, or (at your option) any later version.
10
11
Libiberty is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
Library General Public License for more details.
15
16
You should have received a copy of the GNU Library General Public
17
License along with libiberty; see the file COPYING.LIB.  If not, write
18
to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
19
Floor, Boston, MA 02110-1301, USA.  */
20
21
#ifdef HAVE_CONFIG_H
22
#include "config.h"
23
#endif
24
#include "ansidecl.h"
25
#include "libiberty.h"
26
27
#include <stdarg.h>
28
29
/*
30
31
@deftypefn Replacement char* xasprintf (const char *@var{format}, ...)
32
33
Print to allocated string without fail.  If @code{xasprintf} fails,
34
this will print a message to @code{stderr} (using the name set by
35
@code{xmalloc_set_program_name}, if any) and then call @code{xexit}.
36
37
@end deftypefn
38
39
*/
40
41
char *
42
xasprintf (const char *fmt, ...)
43
2.07k
{
44
2.07k
  char *buf;
45
2.07k
  va_list ap;
46
2.07k
  va_start (ap, fmt);
47
2.07k
  buf = xvasprintf (fmt, ap);
48
2.07k
  va_end (ap);
49
2.07k
  return buf;
50
2.07k
}