* libc/include/stdio.h (_ELIDABLE_INLINE): Move definition from here...
* libc/include/_ansi.h (_ELIDABLE_INLINE): ..to here.
This commit is contained in:
parent
d74c61c2be
commit
56c5c08a5d
|
@ -1,3 +1,8 @@
|
||||||
|
2009-04-04 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* libc/include/stdio.h (_ELIDABLE_INLINE): Move definition from here...
|
||||||
|
* libc/include/_ansi.h (_ELIDABLE_INLINE): ..to here.
|
||||||
|
|
||||||
2009-04-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
2009-04-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
||||||
|
|
||||||
* libc/include/stdio.h [__SCLE] (__sgetc_r): Prototype before define
|
* libc/include/stdio.h [__SCLE] (__sgetc_r): Prototype before define
|
||||||
|
|
|
@ -79,6 +79,27 @@
|
||||||
#define _ATTRIBUTE(attrs)
|
#define _ATTRIBUTE(attrs)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* The traditional meaning of 'extern inline' for GCC is not
|
||||||
|
to emit the function body unless the address is explicitly
|
||||||
|
taken. However this behaviour is changing to match the C99
|
||||||
|
standard, which uses 'extern inline' to indicate that the
|
||||||
|
function body *must* be emitted. If we are using GCC, but do
|
||||||
|
not have the new behaviour, we need to use extern inline; if
|
||||||
|
we are using a new GCC with the C99-compatible behaviour, or
|
||||||
|
a non-GCC compiler (which we will have to hope is C99, since
|
||||||
|
there is no other way to achieve the effect of omitting the
|
||||||
|
function if it isn't referenced) we just use plain 'inline',
|
||||||
|
which c99 defines to mean more-or-less the same as the Gnu C
|
||||||
|
'extern inline'. */
|
||||||
|
#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
||||||
|
/* We're using GCC, but without the new C99-compatible behaviour. */
|
||||||
|
#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
|
||||||
|
#else
|
||||||
|
/* We're using GCC in C99 mode, or an unknown compiler which
|
||||||
|
we just have to hope obeys the C99 semantics of inline. */
|
||||||
|
#define _ELIDABLE_INLINE __inline__
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ISO C++. */
|
/* ISO C++. */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -589,28 +589,7 @@ FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie,
|
||||||
There are two possible means to this end when compiling with GCC,
|
There are two possible means to this end when compiling with GCC,
|
||||||
one when compiling with a standard C99 compiler, and for other
|
one when compiling with a standard C99 compiler, and for other
|
||||||
compilers we're just stuck. At the moment, this issue only
|
compilers we're just stuck. At the moment, this issue only
|
||||||
affects the Cygwin target, so we'll most likely be using GCC.
|
affects the Cygwin target, so we'll most likely be using GCC. */
|
||||||
|
|
||||||
The traditional meaning of 'extern inline' for GCC is not
|
|
||||||
to emit the function body unless the address is explicitly
|
|
||||||
taken. However this behaviour is changing to match the C99
|
|
||||||
standard, which uses 'extern inline' to indicate that the
|
|
||||||
function body *must* be emitted. If we are using GCC, but do
|
|
||||||
not have the new behaviour, we need to use extern inline; if
|
|
||||||
we are using a new GCC with the C99-compatible behaviour, or
|
|
||||||
a non-GCC compiler (which we will have to hope is C99, since
|
|
||||||
there is no other way to achieve the effect of omitting the
|
|
||||||
function if it isn't referenced) we just use plain 'inline',
|
|
||||||
which c99 defines to mean more-or-less the same as the Gnu C
|
|
||||||
'extern inline'. */
|
|
||||||
#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
|
||||||
/* We're using GCC, but without the new C99-compatible behaviour. */
|
|
||||||
#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
|
|
||||||
#else
|
|
||||||
/* We're using GCC in C99 mode, or an unknown compiler which
|
|
||||||
we just have to hope obeys the C99 semantics of inline. */
|
|
||||||
#define _ELIDABLE_INLINE __inline__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p);
|
_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue