From: Dale Weiler Date: Thu, 20 Dec 2012 10:20:16 +0000 (+0000) Subject: No more hacks X-Git-Tag: 0.1.9~22 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=2e57a952a702a2b591cabc9fb857d4cf0811e3a7;p=xonotic%2Fgmqcc.git No more hacks --- diff --git a/Makefile b/Makefile index 5c26cdf..63b41c6 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ CYGWIN = $(findstring CYGWIN, $(UNAME)) MINGW = $(findstring MINGW32, $(UNAME)) CC ?= clang -CFLAGS += -Wall -Wextra -I. -pedantic-errors -std=gnu99 +CFLAGS += -Wall -Wextra -I. -pedantic-errors #turn on tons of warnings if clang is present # but also turn off the STUPID ONES ifeq ($(CC), clang) diff --git a/con.c b/con.c index 7406cae..3fca6ef 100644 --- a/con.c +++ b/con.c @@ -27,7 +27,14 @@ * + some other things likewise. */ #ifndef _WIN32 -#include +# include +#else +# include + /* + * Windows and it's posix underscore bullshit. We simply fix this + * with yay, another macro :P + */ +# define isatty _isatty #endif #define GMQCC_IS_STDOUT(X) ((FILE*)((void*)X) == stdout) @@ -59,12 +66,6 @@ typedef struct { #define STDERR_FILENO 2 #define STDOUT_FILENO 1 -/* - * Windows and it's posix underscore bullshit. We simply fix this - * with yay, another macro :P - */ -#define isatty _isatty - enum { RESET = 0, BOLD = 1, diff --git a/gmqcc.h b/gmqcc.h index 234aaa9..d39eda3 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -134,52 +134,8 @@ # define GMQCC_NORETURN #endif -/* no stdint.h in < C99 */ -#if __STDC_VERSION__ < 199901L -# if CHAR_MIN == -128 - typedef unsigned char uint8_t; /* same as below */ -# elif SCHAR_MIN == -128 - typedef unsigned char uint8_t; /* same as above */ -# endif -# if SHRT_MAX == 0x7FFF - typedef short int16_t; - typedef unsigned short uint16_t; -# elif INT_MAX == 0x7FFF - typedef int int16_t; - typedef unsigned int uint16_t; -# endif -# if INT_MAX == 0x7FFFFFFF - typedef int int32_t; - typedef unsigned int uint32_t; -# elif LONG_MAX == 0x7FFFFFFF - typedef long int32_t; - typedef unsigned long uint32_t; -# endif - -# if defined(__GNUC__) || defined (__CLANG__) - typedef int int64_t __attribute__((__mode__(__DI__))); - typedef unsigned int uint64_t __attribute__((__mode__(__DI__))); -# elif defined(_MSC_VER) - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; -# else - /* - * Incorrectly size the types so static assertions below will - * fail. There is no valid way to get a 64bit type at this point - * without making assumptions of too many things. - */ - typedef struct { char _fail : 0; } int64_t; - typedef struct { char _fail : 0; } uint64_t; -# endif - /* Ensure type sizes are correct: */ - typedef char uint8_size_is_correct [sizeof(uint8_t) == 1?1:-1]; - typedef char uint16_size_is_correct [sizeof(uint16_t) == 2?1:-1]; - typedef char uint32_size_is_correct [sizeof(uint32_t) == 4?1:-1]; - typedef char uint64_size_is_correct [sizeof(uint64_t) == 8?1:-1]; - typedef char int16_size_if_correct [sizeof(int16_t) == 2?1:-1]; - typedef char int32_size_is_correct [sizeof(int32_t) == 4?1:-1]; - typedef char int64_size_is_correct [sizeof(int64_t) >= 8?1:-1]; -#else +/* TODO: visual studiblows work around */ +#ifndef _MSC_VER # include #endif diff --git a/util.c b/util.c index d1eb5b4..4a8b164 100644 --- a/util.c +++ b/util.c @@ -533,7 +533,7 @@ typedef struct hash_node_t { * below. These should be autovectorized by gcc. */ #ifdef __x86_64__ -static GMQCC_INLINE uint32_t util_hthashfunc(hash_table_t *ht, const char *key, size_t seed) { +GMQCC_INLINE uint32_t util_hthashfunc(hash_table_t *ht, const char *key, size_t seed) { const uint64_t mix = 0xC6A4A7935BD1E995UL; const int rot = 47; size_t size = strlen(key); @@ -575,7 +575,7 @@ static GMQCC_INLINE uint32_t util_hthashfunc(hash_table_t *ht, const char *key, } #else -static GMQCC_INLINE uint32_t util_hthashfunc(hash_table_t *ht, const char *key, size_t seed) { +GMQCC_INLINE uint32_t util_hthashfunc(hash_table_t *ht, const char *key, size_t seed) { const uint32_t mix = 0x5BD1E995; const uint32_t rot = 24; size_t size = strlen(key);