* [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions
@ 2013-06-09 12:22 Stefan Weil
2013-06-09 17:28 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Stefan Weil @ 2013-06-09 12:22 UTC (permalink / raw)
To: qemu-trivial; +Cc: Stefan Weil, Vassili Karpov (malc), qemu-devel
GCC_ATTR was only used in audio_int.h, so it is now unused and
the definition can be removed from compiler.h.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
audio/audio_int.h | 8 +++-----
include/qemu/compiler.h | 3 ---
2 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/audio/audio_int.h b/audio/audio_int.h
index b9b0676..5a6284b 100644
--- a/audio/audio_int.h
+++ b/audio/audio_int.h
@@ -243,7 +243,7 @@ static inline int audio_ring_dist (int dst, int src, int len)
return (dst >= src) ? (dst - src) : (len - src + dst);
}
-static void GCC_ATTR dolog (const char *fmt, ...)
+static inline void GCC_FMT_ATTR(1, 2) dolog (const char *fmt, ...)
{
va_list ap;
@@ -253,7 +253,7 @@ static void GCC_ATTR dolog (const char *fmt, ...)
}
#ifdef DEBUG
-static void GCC_ATTR ldebug (const char *fmt, ...)
+static inline void GCC_FMT_ATTR(1, 2) ldebug (const char *fmt, ...)
{
va_list ap;
@@ -267,15 +267,13 @@ static void GCC_ATTR ldebug (const char *fmt, ...)
#elif defined NDEBUG && defined _MSC_VER
#define ldebug __noop
#else
-static void GCC_ATTR ldebug (const char *fmt, ...)
+static inline void GCC_FMT_ATTR(1, 2) ldebug (const char *fmt, ...)
{
(void) fmt;
}
#endif
#endif
-#undef GCC_ATTR
-
#define AUDIO_STRINGIFY_(n) #n
#define AUDIO_STRINGIFY(n) AUDIO_STRINGIFY_(n)
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index 6175c24..155b358 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -38,11 +38,9 @@
#if defined __GNUC__
# if !QEMU_GNUC_PREREQ(4, 4)
/* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
-# define GCC_ATTR __attribute__((__unused__, format(printf, 1, 2)))
# define GCC_FMT_ATTR(n, m) __attribute__((format(printf, n, m)))
# else
/* Use gnu_printf when supported (qemu uses standard format strings). */
-# define GCC_ATTR __attribute__((__unused__, format(gnu_printf, 1, 2)))
# define GCC_FMT_ATTR(n, m) __attribute__((format(gnu_printf, n, m)))
# if defined(_WIN32)
/* Map __printf__ to __gnu_printf__ because we want standard format strings
@@ -51,7 +49,6 @@
# endif
# endif
#else
-#define GCC_ATTR /**/
#define GCC_FMT_ATTR(n, m)
#endif
--
1.7.10.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-trivial] [Qemu-devel] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions
2013-06-09 12:22 [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions Stefan Weil
@ 2013-06-09 17:28 ` Andreas Färber
2013-06-10 15:38 ` [Qemu-trivial] " Michael Tokarev
2013-06-11 12:38 ` Michael Tokarev
2 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2013-06-09 17:28 UTC (permalink / raw)
To: Stefan Weil; +Cc: qemu-trivial, Vassili Karpov (malc), qemu-devel
Am 09.06.2013 14:22, schrieb Stefan Weil:
> GCC_ATTR was only used in audio_int.h, so it is now unused and
> the definition can be removed from compiler.h.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions
2013-06-09 12:22 [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions Stefan Weil
2013-06-09 17:28 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
@ 2013-06-10 15:38 ` Michael Tokarev
2013-06-11 12:38 ` Michael Tokarev
2 siblings, 0 replies; 6+ messages in thread
From: Michael Tokarev @ 2013-06-10 15:38 UTC (permalink / raw)
To: Stefan Weil; +Cc: qemu-trivial, Vassili Karpov (malc), qemu-devel
09.06.2013 16:22, Stefan Weil wrote:
> GCC_ATTR was only used in audio_int.h, so it is now unused and
> the definition can be removed from compiler.h.
Thanks, applied to the trivial patches queue.
/mjt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions
2013-06-09 12:22 [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions Stefan Weil
2013-06-09 17:28 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
2013-06-10 15:38 ` [Qemu-trivial] " Michael Tokarev
@ 2013-06-11 12:38 ` Michael Tokarev
2013-06-11 12:42 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
2013-06-11 17:24 ` [Qemu-trivial] " Stefan Weil
2 siblings, 2 replies; 6+ messages in thread
From: Michael Tokarev @ 2013-06-11 12:38 UTC (permalink / raw)
To: Stefan Weil; +Cc: qemu-trivial, qemu-devel
[Removing malc's email since it bounces]
09.06.2013 16:22, Stefan Weil wrote:
> GCC_ATTR was only used in audio_int.h, so it is now unused and
> the definition can be removed from compiler.h.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
> audio/audio_int.h | 8 +++-----
> include/qemu/compiler.h | 3 ---
> 2 files changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/audio/audio_int.h b/audio/audio_int.h
> index b9b0676..5a6284b 100644
> --- a/audio/audio_int.h
> +++ b/audio/audio_int.h
> @@ -243,7 +243,7 @@ static inline int audio_ring_dist (int dst, int src, int len)
> return (dst >= src) ? (dst - src) : (len - src + dst);
> }
>
> -static void GCC_ATTR dolog (const char *fmt, ...)
> +static inline void GCC_FMT_ATTR(1, 2) dolog (const char *fmt, ...)
This change (adding `inline') causes build failure with at least with gcc-4.7:
audio/wavaudio.c: In function ‘dolog’:
audio/audio_int.h:246:100: error: function ‘dolog’ can never be inlined because it uses variable argument lists
$ gcc --version
gcc (Debian 4.7.2-5) 4.7.2
I think the addition of inline should be dropped here and in other
similar places (the rest is ok).
I can do that myself if you want.
Alternatively these functions can be turned into varargs #defines.
Thanks,
/mjt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-trivial] [Qemu-devel] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions
2013-06-11 12:38 ` Michael Tokarev
@ 2013-06-11 12:42 ` Andreas Färber
2013-06-11 17:24 ` [Qemu-trivial] " Stefan Weil
1 sibling, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2013-06-11 12:42 UTC (permalink / raw)
To: Michael Tokarev; +Cc: qemu-trivial, Stefan Weil, qemu-devel
Am 11.06.2013 14:38, schrieb Michael Tokarev:
> [Removing malc's email since it bounces]
> 09.06.2013 16:22, Stefan Weil wrote:
>> GCC_ATTR was only used in audio_int.h, so it is now unused and
>> the definition can be removed from compiler.h.
>>
>> Signed-off-by: Stefan Weil <sw@weilnetz.de>
>> ---
>> audio/audio_int.h | 8 +++-----
>> include/qemu/compiler.h | 3 ---
>> 2 files changed, 3 insertions(+), 8 deletions(-)
>>
>> diff --git a/audio/audio_int.h b/audio/audio_int.h
>> index b9b0676..5a6284b 100644
>> --- a/audio/audio_int.h
>> +++ b/audio/audio_int.h
>> @@ -243,7 +243,7 @@ static inline int audio_ring_dist (int dst, int src, int len)
>> return (dst >= src) ? (dst - src) : (len - src + dst);
>> }
>>
>> -static void GCC_ATTR dolog (const char *fmt, ...)
>> +static inline void GCC_FMT_ATTR(1, 2) dolog (const char *fmt, ...)
>
> This change (adding `inline') causes build failure with at least with gcc-4.7:
>
> audio/wavaudio.c: In function ‘dolog’:
> audio/audio_int.h:246:100: error: function ‘dolog’ can never be inlined because it uses variable argument lists
>
> $ gcc --version
> gcc (Debian 4.7.2-5) 4.7.2
>
> I think the addition of inline should be dropped here and in other
> similar places (the rest is ok).
>
> I can do that myself if you want.
But having a static function in the header still needs the __unused__
attribute, which this patch tries to remove, doesn't it?
Andreas
>
> Alternatively these functions can be turned into varargs #defines.
>
> Thanks,
>
> /mjt
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions
2013-06-11 12:38 ` Michael Tokarev
2013-06-11 12:42 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
@ 2013-06-11 17:24 ` Stefan Weil
1 sibling, 0 replies; 6+ messages in thread
From: Stefan Weil @ 2013-06-11 17:24 UTC (permalink / raw)
To: Michael Tokarev; +Cc: qemu-trivial, qemu-devel
Am 11.06.2013 14:38, schrieb Michael Tokarev:
> [Removing malc's email since it bounces]
> 09.06.2013 16:22, Stefan Weil wrote:
>> GCC_ATTR was only used in audio_int.h, so it is now unused and
>> the definition can be removed from compiler.h.
>>
>> Signed-off-by: Stefan Weil <sw@weilnetz.de>
[snip]
> This change (adding `inline') causes build failure with at least with gcc-4.7:
>
> audio/wavaudio.c: In function ‘dolog’:
> audio/audio_int.h:246:100: error: function ‘dolog’ can never be inlined because it uses variable argument lists
>
> $ gcc --version
> gcc (Debian 4.7.2-5) 4.7.2
>
> I think the addition of inline should be dropped here and in other
> similar places (the rest is ok).
>
> I can do that myself if you want.
>
> Alternatively these functions can be turned into varargs #defines.
>
> Thanks,
>
> /mjt
Thank you for reporting this compiler problem. I did not see
it because I configured with -enable-debugwhich disables
inline functions.
I'll send a new patch which uses macros.
Regards
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-06-11 17:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-09 12:22 [Qemu-trivial] [PATCH] audio: Replace macro GCC_ATTR by GCC_FMT_ATTR and use inline functions Stefan Weil
2013-06-09 17:28 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
2013-06-10 15:38 ` [Qemu-trivial] " Michael Tokarev
2013-06-11 12:38 ` Michael Tokarev
2013-06-11 12:42 ` [Qemu-trivial] [Qemu-devel] " Andreas Färber
2013-06-11 17:24 ` [Qemu-trivial] " Stefan Weil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).