Jonathan Nieder <> writes:

> Junio C Hamano wrote:
>> It seems to apply well on the tip of jk/gcc-function-attributes.
>>  - This macro is not about "git" at all, so I'll edit the patch to
>>    call it GCC_ATTR_SENTINEL before applying.
> Would naming it something like LAST_ARG_MUST_BE_NULL instead make
> sense?  That way, if some other compiler gains a different syntax for
> the same annotation, it would be possible to do
>       #if defined(__GNUC__) && __GNUC__ >= 4
>       # define LAST_ARG_MUST_BE_NULL __attribute__((sentinel))
>       #elif defined(_MSC_VER) && _MSC_VER > 27
>       # define LAST_ARG_MUST_BE_NULL __declspec(lastargnull)
>       #else
>       # define LAST_ARG_MUST_BE_NULL
>       #endif

I do like last-arg-must-be-null name for its descriptiveness; with
the example of NORETURN vs NORETURN_PTR, however, I am not quite
convinced that it would help reusing the same macro to different

I would say it is already sheer luck that GCC's __attribute__(())
and MSC's __declspec() both come at the same place in the function
declaration syntax, i.e. before the usual declaration.  Your next
compiler may want the magic immediately before the closing semicolon
of the declaration, for example.

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to