Re: [PATCH v2 01/10] compiler-gcc4.h: Reorder macros based upon gcc ver

Borislav Petkov
2012-10-06T17:42:26Z

On Fri, Oct 05, 2012 at 02:42:40PM -0500, danielfsantos@att.net wrote:
> This helps to keep the file from getting confusing, removes one
> duplicate version check and should encourage future editors to put new
> macros where they belong.
>
> Signed-off-by: Daniel Santos <daniel.santos@pobox.com>
> Acked-by: David Rientjes <rientjes@google.com>
> ---
> include/linux/compiler-gcc4.h | 20 +++++++++++---------
> 1 files changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h
> index 8721704..4506d65 100644
> --- a/include/linux/compiler-gcc4.h
> +++ b/include/linux/compiler-gcc4.h
> @@ -13,6 +13,10 @@
> #define __must_check __attribute__((warn_unused_result))
> #define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
>
> +#if __GNUC_MINOR__ > 0
> +# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
> +#endif
> +
> #if __GNUC_MINOR__ >= 3
> /* Mark functions as cold. gcc will assume any path leading to a call
> to them will be unlikely. This means a lot of manual unlikely()s
> @@ -31,6 +35,12 @@
>
> #define __linktime_error(message) __attribute__((__error__(message)))
>
> +#ifndef __CHECKER__
> +# define __compiletime_warning(message) __attribute__((warning(message)))
> +# define __compiletime_error(message) __attribute__((error(message)))
> +#endif /* __CHECKER__ */
> +#endif /* __GNUC_MINOR__ >= 3 */
> +
> #if __GNUC_MINOR__ >= 5
> /*
> * Mark a position in code as unreachable. This can be used to
> @@ -46,8 +56,7 @@
> /* Mark a function definition as prohibited from being cloned. */
> #define __noclone __attribute__((__noclone__))
>
> -#endif
> -#endif
> +#endif /* __GNUC_MINOR__ >= 5 */
>
> #if __GNUC_MINOR__ >= 6
> /*
> @@ -56,10 +65,3 @@
> #define __visible __attribute__((externally_visible))
> #endif
>
> -#if __GNUC_MINOR__ > 0
> -#define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
> -#endif
> -#if __GNUC_MINOR__ >= 3 && !defined(__CHECKER__)

This last hunk doesn't apply since mainline has a "4" above instead of
"3". And it has had a "4" since it got added by 4a3127693001c so unless
I'm missing something, how did the 3 appear in your patches?

> -#define __compiletime_warning(message) __attribute__((warning(message)))
> -#define __compiletime_error(message) __attribute__((error(message)))
> -#endif
> --
> 1.7.3.4

Thanks.

--
Regards/Gruss,
Boris.