__signed usage in ansi.h

Matthew Dillon dillon at apollo.backplane.com
Sun Aug 10 14:08:25 PDT 2003

    The GCC double-underscore entities primarily exist to create a portable
    environment that is not effected by things like -ansi, -pedantic, and
    other compatibility options, and to allow environments to be compiled
    using non-GCC C compilers.

    However, there's a point where it just doesn't make sense to maintain
    backwards compatibility all the way to K&R C, which is what __volatile
    does.  So in my view we can strip the '__' off of __volatile, __const,
    and __signed.

    What we can't do is replace things like '__inline' with 'inline'.  We
    need to keep __inline intact in order to maintain compatibility with
    compilers that do not support inlining (where one can #define __inline
    to nothing and the code then becomes static-like).  It is simply too
    dangerous to force those environments to define 'inline' to nothing,
    which is why __inline exists.


:OK, committed.
:Another question some of you might be able to answer me;
:what use is using __volatile and __const over volatile and const?
:I mean, I know what they do and what they are there for, but giving
:Rob's impending work of changing all __P(()) to normal ISO C prototyping
:it makes no use to still have type wrappers like this lingering around
:as well then.
:Or am I missing something subtle here?
:Jeroen Ruigrok van der Werven <asmodai(at)wxs.nl> / asmodai

More information about the Kernel mailing list