Re: [PATCH] git-compat-util.h: GCC deprecated message arg only in GCC 4.5+
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Oct 6, 2022, 07:31 UTC
- Message-ID
- <221006.86h70hs8xb.gmgdl@evledraar.gmail.com>
- In-Reply-To
- <20221005221928.703750-1-asedeno@google.com>
On Wed, Oct 05 2022, Aleajndro R Sedeño wrote:
Show 36 quoted lines
> From: Alejandro R. Sedeño <asedeno@mit.edu>
>
> From: https://gcc.gnu.org/gcc-4.5/changes.html
>
>> The deprecated attribute now takes an optional string argument, for
>> example, __attribute__((deprecated("text string"))), that will be
>> printed together with the deprecation warning.
>
> While GCC 4.5 is already 12 years old, git checks for even older
> versions in places. Let's not needlessly break older compilers when
> a small and simple fix is readily available.
>
> Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
> Signed-off-by: Alejandro R Sedeño <asedeno@google.com>
> ---
> git-compat-util.h | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index b90b64718e..045b47f83a 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -189,9 +189,12 @@ struct strbuf;
> #define _NETBSD_SOURCE 1
> #define _SGI_SOURCE 1
>
> -#if defined(__GNUC__)
> +#if GIT_GNUC_PREREQ(4, 5)
> #define UNUSED __attribute__((unused)) \
> __attribute__((deprecated ("parameter declared as UNUSED")))
> +#elif defined(__GNUC__)
> +#define UNUSED __attribute__((unused)) \
> + __attribute__((deprecated))
> #else
> #define UNUSED
> #endifThis LGTM, thanks a lot for that fix & fixing this (minor) breakage of mine.
I did test on an older GCC myself, and then (in lieu of logging into an ancient system I have access to) scoured the release notes of gcc, and discovered that "deprecated" was older than anything we cared about.
But I obviously missed that while the feature had been there for a longer time, it didn't take this parameter until GCC 4.5, sorry!