[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: C99 inline and restrict keyword tests

From: Yann Droneaud
Subject: Re: C99 inline and restrict keyword tests
Date: Wed, 02 Dec 2009 10:32:26 +0100

Le mardi 01 décembre 2009 à 19:25 +0100, Ralf Wildenhues a écrit :
> Hello Yann,
> * Yann Droneaud wrote on Tue, Dec 01, 2009 at 03:09:11PM CET:
> > If AC_PROG_CC_C99 successfully found a C99 compliant C compiler,
> > AC_C_INLINE and AC_C_RESTRICT should use this result.
> > 
> > Testing for "inline" and "restrict" keywords is redundant,
> > eg, checking ac_cv_prog_cc_c99 = yes should be enough.
> Well, in theory you are right.  

Hey, autoconf is here to help developer to workaround reality and 
stay in the theory nirvana :)

> In practice, the restrict macro tries to
> get a spelling that is likely to be accepted by the C++ compiler as
> well, and the inline case checks for a specific compiler bug:
> # HP C version B.11.11.04 doesn't allow a typedef as the return value for an
> # inline function, only builtin types.
> I can only check B.11.11.20, and it does not seem to have that bug (any
> more).

Is HP C version B.11.11.04 found as C99 compatible by AC_PROG_CC_C99 ?
AC_PROG_CC_C99 use a test with one inline and one restrict, but not the
corner case about typedef'ed type.

Should such compiler be rejected as C99 compliant C compiler ?.

IMHO, AC_PROG_CC_C99 and AC_C_INLINE + AC_C_RESTRICT should be related
in some ways, perhaps AC_PROG_CC_C99 should rely on AC_C_INLINE +
In my first post, I was proposing the opposite: AC_C_INLINE +
AC_C_RESTRICT relying of AC_PROG_CC_C99 result.

But the test stay like they are, if a note is added in AC_PROG_CC_C99,
such as:

"AC_PROG_CC_C99 does not guarantee individual C99 features availability.
Some compiler don't implement some or have buggy implementation, so one
should use tests such as AC_C_INLINE, AC_C_RESTRICT, etc. in order to
check C99 features they rely on".


Yann Droneaud

reply via email to

[Prev in Thread] Current Thread [Next in Thread]