mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2024-11-27 14:12:36 +00:00
No more hacks
This commit is contained in:
parent
42fc620466
commit
2e57a952a7
4 changed files with 13 additions and 56 deletions
2
Makefile
2
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)
|
||||
|
|
15
con.c
15
con.c
|
@ -27,7 +27,14 @@
|
|||
* + some other things likewise.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#include <unistd.h>
|
||||
# include <unistd.h>
|
||||
#else
|
||||
# include <io.h>
|
||||
/*
|
||||
* 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,
|
||||
|
|
48
gmqcc.h
48
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 <stdint.h>
|
||||
#endif
|
||||
|
||||
|
|
4
util.c
4
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);
|
||||
|
|
Loading…
Reference in a new issue