diff --git a/ctags/Makefile.am b/ctags/Makefile.am index 342d1441..f29f7e56 100644 --- a/ctags/Makefile.am +++ b/ctags/Makefile.am @@ -61,6 +61,7 @@ libctags_la_SOURCES = \ main/entry.h \ main/error.c \ main/error.h \ + main/gcc-attr.h \ main/general.h \ main/keyword.c \ main/keyword.h \ diff --git a/ctags/main/gcc-attr.h b/ctags/main/gcc-attr.h new file mode 100644 index 00000000..4c6caf92 --- /dev/null +++ b/ctags/main/gcc-attr.h @@ -0,0 +1,30 @@ +/* +* Copyright (c) 1998-2003, Darren Hiebert +* +* This source code is released for free distribution under the terms of the +* GNU General Public License version 2 or (at your option) any later version. +*/ + +/* This is derived from general.h. + Only readtags related source file should include this. + ctags related source file should include genera.h instead. */ + +#ifndef CTAGS_MAIN_GCC_ATTR_H +#define CTAGS_MAIN_GCC_ATTR_H + +/* Prevent warnings about unused variables in GCC. */ +#if defined (__GNUC__) && !defined (__GNUG__) +# ifdef __MINGW32__ +# define CTAGS_ATTR_UNUSED +# else +# define CTAGS_ATTR_UNUSED __attribute__((unused)) +# endif +# define CTAGS_ATTR_PRINTF(s,f) __attribute__((format (printf, s, f))) +# define attr__noreturn __attribute__((__noreturn__)) +#else +# define CTAGS_ATTR_UNUSED +# define CTAGS_ATTR_PRINTF(s,f) +# define attr__noreturn +#endif + +#endif /* CTAGS_MAIN_GCC_ATTR_H */ diff --git a/ctags/main/general.h b/ctags/main/general.h index c7f51450..f34e6cca 100644 --- a/ctags/main/general.h +++ b/ctags/main/general.h @@ -27,18 +27,7 @@ /* * MACROS */ - -/* This is a helpful internal feature of later versions (> 2.7) of GCC - * to prevent warnings about unused variables. - */ -#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) && !(defined (__APPLE_CC__) || defined (__GNUG__)) -# define CTAGS_ATTR_UNUSED __attribute__((unused)) -# define CTAGS_ATTR_PRINTF(s,f) __attribute__((format (printf, s, f))) -#else -# define CTAGS_ATTR_UNUSED -# define CTAGS_ATTR_PRINTF(s,f) -#endif - +#include "gcc-attr.h" /* MS-DOS doesn't allow manipulation of standard error, so we send it to * stdout instead.