diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-09-02 12:46:06 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-09-02 12:46:06 -0400 |
commit | fb247fafa04ee52dda816355ab0461132297b9a4 (patch) | |
tree | 25c815d12a2beb2f9faaa0cc0308c1274beded6e /include/byteswap.h | |
parent | 3f62f76cab46fbd28248ed251a88278c6ea1be3a (diff) | |
download | musl-fb247fafa04ee52dda816355ab0461132297b9a4.tar.gz musl-fb247fafa04ee52dda816355ab0461132297b9a4.tar.bz2 musl-fb247fafa04ee52dda816355ab0461132297b9a4.tar.xz musl-fb247fafa04ee52dda816355ab0461132297b9a4.zip |
avoid "inline" in public headers for strict c89 compatibility
while musl itself requires a c99 compiler, some applications insist on
being compiled with c89 compilers, and use of "inline" in the headers
was breaking them. much of this had been avoided already by just
skipping the inline keyword in pre-c99 compilers or modes, but this
new unified solution is cleaner and may/should result in better code
generation in the default gcc configuration.
Diffstat (limited to 'include/byteswap.h')
-rw-r--r-- | include/byteswap.h | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/include/byteswap.h b/include/byteswap.h index 8689cd57..bf222d3c 100644 --- a/include/byteswap.h +++ b/include/byteswap.h @@ -3,26 +3,21 @@ #include <stdint.h> -#if __STDC_VERSION__ >= 199901L -inline +#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) +#define __inline inline #endif -static uint16_t __bswap_16(uint16_t __x) + +static __inline uint16_t __bswap_16(uint16_t __x) { return __x<<8 | __x>>8; } -#if __STDC_VERSION__ >= 199901L -inline -#endif -static uint32_t __bswap_32(uint32_t __x) +static __inline uint32_t __bswap_32(uint32_t __x) { return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24; } -#if __STDC_VERSION__ >= 199901L -inline -#endif -static uint64_t __bswap_64(uint64_t __x) +static __inline uint64_t __bswap_64(uint64_t __x) { return __bswap_32(__x)+0ULL<<32 | __bswap_32(__x>>32); } |