]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - gmqcc.h
-Werror-<warning>, -Wno-error-<warning>, manpage updated
[xonotic/gmqcc.git] / gmqcc.h
diff --git a/gmqcc.h b/gmqcc.h
index 234aaa9cfb28edbf36a4c7facd14a9ad977e274d..fdcb56ba8a5efa4f1a5dfe0c313600c5b8e1954c 100644 (file)
--- a/gmqcc.h
+++ b/gmqcc.h
 #    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
 
@@ -942,7 +898,6 @@ typedef struct {
     bool        memchk;         /* -memchk       */
     bool        dumpfin;        /* -dumpfin      */
     bool        dump;           /* -dump         */
-    bool        werror;         /* -Werror       */
     bool        forcecrc;       /* --force-crc=  */
     uint16_t    forced_crc;     /* --force-crc=  */
     bool        pp_only;        /* -E            */
@@ -950,6 +905,7 @@ typedef struct {
 
     uint32_t flags       [1 + (COUNT_FLAGS         / 32)];
     uint32_t warn        [1 + (COUNT_WARNINGS      / 32)];
+    uint32_t werror      [1 + (COUNT_WARNINGS      / 32)];
     uint32_t optimization[1 + (COUNT_OPTIMIZATIONS / 32)];
 } opts_cmd_t;
 
@@ -958,6 +914,7 @@ extern opts_cmd_t opts;
 /*===================================================================*/
 #define OPTS_FLAG(i)         (!! (opts.flags       [(i)/32] & (1<< ((i)%32))))
 #define OPTS_WARN(i)         (!! (opts.warn        [(i)/32] & (1<< ((i)%32))))
+#define OPTS_WERROR(i)       (!! (opts.werror      [(i)/32] & (1<< ((i)%32))))
 #define OPTS_OPTIMIZATION(i) (!! (opts.optimization[(i)/32] & (1<< ((i)%32))))
 
 #endif