]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
Merge branch 'master' into cooking
authorWolfgang Bumiller <blub@speed.at>
Sun, 3 Feb 2013 18:01:30 +0000 (19:01 +0100)
committerWolfgang Bumiller <blub@speed.at>
Sun, 3 Feb 2013 18:01:30 +0000 (19:01 +0100)
1  2 
opts.c

diff --combined opts.c
index c0be2dd113215b3f7f5060a1d5c287885bad6a1f,1c68a39a8d7dbcfd96c54bbb527eb946ea56d684..5cb0ad6edaddd193e049033bfb95f7721c961769
--- 1/opts.c
--- 2/opts.c
+++ b/opts.c
@@@ -27,7 -27,7 +27,7 @@@ opts_cmd_t   opts; /* command lien opti
  
  static void opts_setdefault() {
      memset(&opts, 0, sizeof(opts_cmd_t));
 -    opts.correction = true;
 +    OPTS_OPTION_BOOL(OPTION_CORRECTION) = true;
  
      /* warnings */
      opts_set(opts.warn,  WARN_UNUSED_VARIABLE,           true);
@@@ -37,6 -37,7 +37,6 @@@
      opts_set(opts.warn,  WARN_FIELD_REDECLARED,          true);
      opts_set(opts.warn,  WARN_MISSING_RETURN_VALUES,     true);
      opts_set(opts.warn,  WARN_INVALID_PARAMETER_COUNT,   true);
 -    opts_set(opts.warn,  WARN_LOCAL_SHADOWS,             false);
      opts_set(opts.warn,  WARN_LOCAL_CONSTANTS,           true);
      opts_set(opts.warn,  WARN_VOID_VARIABLES,            true);
      opts_set(opts.warn,  WARN_IMPLICIT_FUNCTION_POINTER, true);
      opts_set(opts.warn,  WARN_EFFECTLESS_STATEMENT,      true);
      opts_set(opts.warn,  WARN_END_SYS_FIELDS,            true);
      opts_set(opts.warn,  WARN_ASSIGN_FUNCTION_TYPES,     true);
 -    opts_set(opts.warn,  WARN_PREPROCESSOR,              true);
 +    opts_set(opts.warn,  WARN_CPP,                       true);
      opts_set(opts.warn,  WARN_MULTIFILE_IF,              true);
      opts_set(opts.warn,  WARN_DOUBLE_DECLARATION,        true);
      opts_set(opts.warn,  WARN_CONST_VAR,                 true);
      opts_set(opts.warn,  WARN_MULTIBYTE_CHARACTER,       true);
      opts_set(opts.warn,  WARN_UNKNOWN_PRAGMAS,           true);
      opts_set(opts.warn,  WARN_UNREACHABLE_CODE,          true);
 -    opts_set(opts.warn,  WARN_CPP,                       true);
      opts_set(opts.warn,  WARN_UNKNOWN_ATTRIBUTE,         true);
      opts_set(opts.warn,  WARN_RESERVED_NAMES,            true);
      opts_set(opts.warn,  WARN_UNINITIALIZED_CONSTANT,    true);
 -    opts_set(opts.warn,  WARN_UNINITIALIZED_GLOBAL,      false);
      opts_set(opts.warn,  WARN_DEPRECATED,                true);
      opts_set(opts.warn,  WARN_PARENTHESIS,               true);
 +
      /* flags */
      opts_set(opts.flags, ADJUST_VECTOR_FIELDS,           true);
 -    opts_set(opts.flags, FTEPP,                          false);
 -    opts_set(opts.flags, FTEPP_PREDEFS,                  false);
      opts_set(opts.flags, CORRECT_TERNARY,                true);
      opts_set(opts.flags, BAIL_ON_WERROR,                 true);
      opts_set(opts.flags, LEGACY_VECTOR_MATHS,            true);
+     opts_set(opts.flags, DARKPLACES_STRING_TABLE_BUG,    true);
  }
  
  void opts_backup_non_Wall() {
@@@ -92,9 -97,9 +93,9 @@@ void opts_restore_non_Werror_all() 
  void opts_init(const char *output, int standard, size_t arraysize) {
      opts_setdefault();
  
 -    opts.output         = output;
 -    opts.standard       = (opts_std_t)standard; /* C++ ... y u no like me? */
 -    opts.max_array_size = arraysize;
 +    OPTS_OPTION_STR(OPTION_OUTPUT)         = (char*)output;
 +    OPTS_OPTION_U32(OPTION_STANDARD)       = standard;
 +    OPTS_OPTION_U32(OPTION_MAX_ARRAY_SIZE) = arraysize;
  }
  
  static bool opts_setflag_all(const char *name, bool on, uint32_t *flags, const opts_flag_def *list, size_t listsize) {
      for (i = 0; i < listsize; ++i) {
          if (!strcmp(name, list[i].name)) {
              longbit lb = list[i].bit;
 -#if 1
 +
              if (on)
                  flags[lb.idx] |= (1<<(lb.bit));
              else
                  flags[lb.idx] &= ~(1<<(lb.bit));
 -#else
 -            if (on)
 -                flags[0] |= (1<<lb);
 -            else
 -                flags[0] &= ~(1<<(lb));
 -#endif
 +
              return true;
          }
      }
@@@ -130,11 -140,17 +131,11 @@@ bool opts_setoptim (const char *name, b
  void opts_set(uint32_t *flags, size_t idx, bool on) {
      longbit lb;
      LONGBIT_SET(lb, idx);
 -#if 1
 +
      if (on)
          flags[lb.idx] |= (1<<(lb.bit));
      else
          flags[lb.idx] &= ~(1<<(lb.bit));
 -#else
 -    if (on)
 -        flags[0] |= (1<<(lb));
 -    else
 -        flags[0] &= ~(1<<(lb));
 -#endif
  }
  
  void opts_setoptimlevel(unsigned int level) {
@@@ -270,7 -286,7 +271,7 @@@ static char *opts_ini_load(const char *
  
      /* flags */
      #define GMQCC_TYPE_FLAGS
 -    #define GMQCC_DEFINE_FLAG(X)                                       \
 +    #define GMQCC_DEFINE_FLAG(X, Y)                                    \
      if (!strcmp(section, "flags") && !strcmp(name, #X)) {              \
          opts_set(opts.flags, X, opts_ini_bool(value));                 \
          found = true;                                                  \
  
      /* warnings */
      #define GMQCC_TYPE_WARNS
 -    #define GMQCC_DEFINE_FLAG(X)                                       \
 +    #define GMQCC_DEFINE_FLAG(X, Y)                                    \
      if (!strcmp(section, "warnings") && !strcmp(name, #X)) {           \
          opts_set(opts.warn, WARN_##X, opts_ini_bool(value));           \
          found = true;                                                  \
  
      /* Werror-individuals */
      #define GMQCC_TYPE_WARNS
 -    #define GMQCC_DEFINE_FLAG(X)                                       \
 +    #define GMQCC_DEFINE_FLAG(X, Y)                                    \
      if (!strcmp(section, "errors") && !strcmp(name, #X)) {             \
          opts_set(opts.werror, WARN_##X, opts_ini_bool(value));         \
          found = true;                                                  \
  
      /* optimizations */
      #define GMQCC_TYPE_OPTIMIZATIONS
 -    #define GMQCC_DEFINE_FLAG(X,Y)                                     \
 +    #define GMQCC_DEFINE_FLAG(X,Y,Z)                                   \
      if (!strcmp(section, "optimizations") && !strcmp(name, #X)) {      \
          opts_set(opts.optimization, OPTIM_##X, opts_ini_bool(value));  \
          found = true;                                                  \