From 91bbb3d2a99f980aede62acaec5156a7fce5ed49 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?= Date: Wed, 6 Mar 2013 21:11:19 +0100 Subject: [PATCH] Do not define __attribute__ in header files. Fix Savannah bug #35313. --- gettext-runtime/libasprintf/ChangeLog | 7 +++++++ gettext-runtime/libasprintf/autosprintf.in.h | 16 +++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/gettext-runtime/libasprintf/ChangeLog b/gettext-runtime/libasprintf/ChangeLog index 14ae71798..d0f706dde 100644 --- a/gettext-runtime/libasprintf/ChangeLog +++ b/gettext-runtime/libasprintf/ChangeLog @@ -1,3 +1,10 @@ +2013-03-07 Miguel Angel Arruga Vivas (tiny change) + + Fix '__attribute__' definition. + Reported at + * autosprintf.in.h (_AUTOSPRINTF_ATTRIBUTE_FORMAT): New macro + instead of redefine __attribute__. + 2013-03-04 Miguel Angel Arruga Vivas (tiny change) Add 'autosprintf::operator='. Needed because destructor diff --git a/gettext-runtime/libasprintf/autosprintf.in.h b/gettext-runtime/libasprintf/autosprintf.in.h index 1efd15a3d..784af9185 100644 --- a/gettext-runtime/libasprintf/autosprintf.in.h +++ b/gettext-runtime/libasprintf/autosprintf.in.h @@ -17,16 +17,18 @@ #ifndef _AUTOSPRINTF_H #define _AUTOSPRINTF_H -#ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ -# define __attribute__(Spec) /* empty */ -# endif +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ +# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() /* empty */ +#else /* The __-protected variants of 'format' and 'printf' attributes are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf +# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \ + __attribute__ ((__format__ (__printf__, 2, 3))) +# else +# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \ + __attribute__ ((format (printf, 2, 3))) # endif #endif @@ -42,7 +44,7 @@ namespace gnu public: /* Constructor: takes a format string and the printf arguments. */ autosprintf (const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); + _AUTOSPRINTF_ATTRIBUTE_FORMAT(); /* Copy constructor. */ autosprintf (const autosprintf& src); autosprintf& operator = (autosprintf copy); -- 2.47.3