From 0569a68edd58d741e46ec1e50d6dd936de77dbfa Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Wed, 17 Dec 2014 12:20:17 +0100 Subject: C90 compatibility --- NEWS | 1 + lib/xxhash.c | 27 +++++++++++++-------------- programs/bench.c | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/NEWS b/NEWS index 0b90665..bf7efe9 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ New : lz4frame API is now integrated into liblz4 Fixed : GCC 4.9 bug on highest performance settings, reported by Greg Slazinski Fixed : bug within LZ4 HC streaming mode, reported by James Boyle Fixed : older compiler don't like nameless unions, reported by Cheyi Lin +Changed : lz4 is C90 compatible r125: Changed : endian and alignment code diff --git a/lib/xxhash.c b/lib/xxhash.c index 7aff1fa..a3ee31c 100644 --- a/lib/xxhash.c +++ b/lib/xxhash.c @@ -49,7 +49,6 @@ You can contact the author at : /* XXH_ACCEPT_NULL_INPUT_POINTER : * If the input pointer is a null pointer, xxHash default behavior is to trigger a memory access error, since it is a bad pointer. * When this option is enabled, xxHash output for null input pointers will be the same as a null-length input. - * This option has a very small performance cost (only measurable on small inputs). * By default, this option is disabled. To enable it, uncomment below define : */ /* #define XXH_ACCEPT_NULL_INPUT_POINTER 1 */ @@ -68,19 +67,19 @@ You can contact the author at : /************************************** * Compiler Specific Options ***************************************/ -/* Disable some Visual warning messages */ -#ifdef _MSC_VER -# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ -#endif - #ifdef _MSC_VER /* Visual Studio */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ # define FORCE_INLINE static __forceinline #else -# ifdef __GNUC__ -# define FORCE_INLINE static inline __attribute__((always_inline)) +# if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ +# ifdef __GNUC__ +# define FORCE_INLINE static inline __attribute__((always_inline)) +# else +# define FORCE_INLINE static inline +# endif # else -# define FORCE_INLINE static inline -# endif +# define FORCE_INLINE static +# endif /* __STDC_VERSION__ */ #endif @@ -171,14 +170,14 @@ typedef struct _U64_S # define XXH_swap32 __builtin_bswap32 # define XXH_swap64 __builtin_bswap64 #else -static inline U32 XXH_swap32 (U32 x) +static U32 XXH_swap32 (U32 x) { return ((x << 24) & 0xff000000 ) | ((x << 8) & 0x00ff0000 ) | ((x >> 8) & 0x0000ff00 ) | ((x >> 24) & 0x000000ff ); } -static inline U64 XXH_swap64 (U64 x) +static U64 XXH_swap64 (U64 x) { return ((x << 56) & 0xff00000000000000ULL) | ((x << 40) & 0x00ff000000000000ULL) | @@ -212,7 +211,7 @@ static inline U64 XXH_swap64 (U64 x) * Architecture Macros ****************************************/ typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess; -#ifndef XXH_CPU_LITTLE_ENDIAN // It is possible to define XXH_CPU_LITTLE_ENDIAN externally, for example using a compiler switch +#ifndef XXH_CPU_LITTLE_ENDIAN /* XXH_CPU_LITTLE_ENDIAN can be defined externally, for example using a compiler switch */ static const int one = 1; # define XXH_CPU_LITTLE_ENDIAN (*(char*)(&one)) #endif @@ -221,7 +220,7 @@ static const int one = 1; /************************************** * Macros ***************************************/ -#define XXH_STATIC_ASSERT(c) { enum { XXH_static_assert = 1/(!!(c)) }; } // use only *after* variable declarations +#define XXH_STATIC_ASSERT(c) { enum { XXH_static_assert = 1/(!!(c)) }; } /* use only *after* variable declarations */ /**************************** diff --git a/programs/bench.c b/programs/bench.c index ba3284e..02e56c9 100644 --- a/programs/bench.c +++ b/programs/bench.c @@ -79,7 +79,7 @@ static int LZ4_compress_local(const char* src, char* dst, int size, int clevel) /************************************** * Basic Types ***************************************/ -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L // C99 +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */ # include typedef uint8_t BYTE; typedef uint16_t U16; @@ -247,7 +247,7 @@ int BMK_benchFile(char** fileNamesTable, int nbFiles, int cLevel) double totald = 0.; - // Init + /* Init */ if (cLevel <= 3) cfunctionId = 0; else cfunctionId = 1; switch (cfunctionId) { -- cgit v0.12