* libc/include/_ansi.h (_ELIDABLE_INLINE): Fix C99 mode.
This commit is contained in:
parent
3b20fd9324
commit
833630b859
@ -1,3 +1,7 @@
|
|||||||
|
2012-02-09 Eric Blake <eblake@redhat.com>
|
||||||
|
|
||||||
|
* libc/include/_ansi.h (_ELIDABLE_INLINE): Fix C99 mode.
|
||||||
|
|
||||||
2012-02-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
2012-02-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||||
|
|
||||||
* libc/sys/rtems/sys/utime.h: Include <sys/types.h> to provide a
|
* libc/sys/rtems/sys/utime.h: Include <sys/types.h> to provide a
|
||||||
|
@ -113,21 +113,24 @@
|
|||||||
to emit the function body unless the address is explicitly
|
to emit the function body unless the address is explicitly
|
||||||
taken. However this behaviour is changing to match the C99
|
taken. However this behaviour is changing to match the C99
|
||||||
standard, which uses 'extern inline' to indicate that the
|
standard, which uses 'extern inline' to indicate that the
|
||||||
function body *must* be emitted. If we are using GCC, but do
|
function body *must* be emitted. Likewise, a function declared
|
||||||
not have the new behaviour, we need to use extern inline; if
|
without either 'extern' or 'static' defaults to extern linkage
|
||||||
we are using a new GCC with the C99-compatible behaviour, or
|
(C99 6.2.2p5), and the compiler may choose whether to use the
|
||||||
a non-GCC compiler (which we will have to hope is C99, since
|
inline version or call the extern linkage version (6.7.4p6).
|
||||||
there is no other way to achieve the effect of omitting the
|
If we are using GCC, but do not have the new behaviour, we need
|
||||||
function if it isn't referenced) we just use plain 'inline',
|
to use extern inline; if we are using a new GCC with the
|
||||||
which c99 defines to mean more-or-less the same as the Gnu C
|
C99-compatible behaviour, or a non-GCC compiler (which we will
|
||||||
'extern inline'. */
|
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 use
|
||||||
|
'static inline', which c99 defines to mean more-or-less the same
|
||||||
|
as the Gnu C 'extern inline'. */
|
||||||
#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
||||||
/* We're using GCC, but without the new C99-compatible behaviour. */
|
/* We're using GCC, but without the new C99-compatible behaviour. */
|
||||||
#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
|
#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
|
||||||
#else
|
#else
|
||||||
/* We're using GCC in C99 mode, or an unknown compiler which
|
/* We're using GCC in C99 mode, or an unknown compiler which
|
||||||
we just have to hope obeys the C99 semantics of inline. */
|
we just have to hope obeys the C99 semantics of inline. */
|
||||||
#define _ELIDABLE_INLINE __inline__
|
#define _ELIDABLE_INLINE static __inline__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _ANSIDECL_H_ */
|
#endif /* _ANSIDECL_H_ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user