mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
Avoid "function 'asprintf_nowarn' can never be inlined because it uses variable argument lists".
Move this to a separate translation unit and don't inline it.
This commit is contained in:
@@ -118,6 +118,7 @@ guestfsd_SOURCES = \
|
||||
findfs.c \
|
||||
fill.c \
|
||||
find.c \
|
||||
format.c \
|
||||
fs-min-size.c \
|
||||
fsck.c \
|
||||
fstrim.c \
|
||||
|
||||
@@ -154,29 +154,7 @@ extern int random_name (char *template);
|
||||
|
||||
extern char *get_random_uuid (void);
|
||||
|
||||
/* This just stops gcc from giving a warning about our custom printf
|
||||
* formatters %Q and %R. See guestfs-hacking(1) for more
|
||||
* info about these. In GCC 4.8.0 the warning is even harder to
|
||||
* 'trick', hence the need for the #pragma directives.
|
||||
*/
|
||||
#if defined(__GNUC__) && GUESTFS_GCC_VERSION >= 40800 /* gcc >= 4.8.0 */
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
|
||||
#endif
|
||||
static inline int
|
||||
asprintf_nowarn (char **strp, const char *fmt, ...)
|
||||
{
|
||||
int r;
|
||||
va_list args;
|
||||
|
||||
va_start (args, fmt);
|
||||
r = vasprintf (strp, fmt, args);
|
||||
va_end (args);
|
||||
return r;
|
||||
}
|
||||
#if defined(__GNUC__) && GUESTFS_GCC_VERSION >= 40800 /* gcc >= 4.8.0 */
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
extern int asprintf_nowarn (char **strp, const char *fmt, ...);
|
||||
|
||||
/* Use by the CLEANUP_* macros. */
|
||||
extern void cleanup_free (void *ptr);
|
||||
|
||||
49
daemon/format.c
Normal file
49
daemon/format.c
Normal file
@@ -0,0 +1,49 @@
|
||||
/* libguestfs - the guestfsd daemon
|
||||
* Copyright (C) 2010-2015 Red Hat Inc.
|
||||
*
|
||||
* 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 2 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, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "daemon.h"
|
||||
|
||||
/* This just stops gcc from giving a warning about our custom printf
|
||||
* formatters %Q and %R. See guestfs-hacking(1) for more
|
||||
* info about these. In GCC 4.8.0 the warning is even harder to
|
||||
* 'trick', hence the need for the #pragma directives.
|
||||
*/
|
||||
#if defined(__GNUC__) && GUESTFS_GCC_VERSION >= 40800 /* gcc >= 4.8.0 */
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
|
||||
#endif
|
||||
int
|
||||
asprintf_nowarn (char **strp, const char *fmt, ...)
|
||||
{
|
||||
int r;
|
||||
va_list args;
|
||||
|
||||
va_start (args, fmt);
|
||||
r = vasprintf (strp, fmt, args);
|
||||
va_end (args);
|
||||
return r;
|
||||
}
|
||||
#if defined(__GNUC__) && GUESTFS_GCC_VERSION >= 40800 /* gcc >= 4.8.0 */
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
@@ -49,6 +49,7 @@ daemon/file.c
|
||||
daemon/fill.c
|
||||
daemon/find.c
|
||||
daemon/findfs.c
|
||||
daemon/format.c
|
||||
daemon/fs-min-size.c
|
||||
daemon/fsck.c
|
||||
daemon/fstrim.c
|
||||
|
||||
Reference in New Issue
Block a user