Attributes of functions
Nicolas Baradakis
nbk at sitadelle.com
Sun Sep 18 16:17:05 CEST 2005
Alan DeKok wrote:
> > Or perhaps this one a little friendlier:
> >
> > #ifdef __GNUC__
> > # define NORETURN __attribute__(noreturn)
> > #else
> > # define NORETURN /*NOTHING*/
> > #endif
> >
> > static void NORETURN usage(void)
>
> Putting #ifdef's in header files is OK. I'm a little more wary
> about putting them in the source.
I was planing to add the #defines in a header file of course.
These are portability issues, so I think they should go in autoconf.h
or in missing.h.
> I'd prefer something like:
>
> ---
> #ifdef __GNUC__
> # define VOID void __attribute__(noreturn)
> #else
> # define VOID void
> #endif
>
> static VOID usage(void)
>
> ---
>
> That gets the same effect, and is less awkward to read.
I think this syntax is a little confusing. The reader may mistakenly
think that the function returns with no value, whereas the attribute
of the function means the function never returns.
I'd like better "static NORETURN usage(void)" in this case.
--
Nicolas Baradakis
More information about the Freeradius-Devel
mailing list