From: Wolfgang Bumiller Date: Sat, 12 Jan 2013 16:10:07 +0000 (+0100) Subject: Removed -fenhanced-diagnostics - it's now --correct, which makes sense since it doesn... X-Git-Tag: before-library~273 X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=commitdiff_plain;h=3652a122ed44e2f7ba39874df2d2f66f4a399ffd Removed -fenhanced-diagnostics - it's now --correct, which makes sense since it doesn't affect the compilation process itself --- diff --git a/doc/gmqcc.1 b/doc/gmqcc.1 index a67c1f5..fe4909b 100644 --- a/doc/gmqcc.1 +++ b/doc/gmqcc.1 @@ -151,6 +151,10 @@ String containing the compiler version as printed by the --version parameter. .RE .TP +.BR "--correct" ", " "--no-correct" +When enabled, errors about undefined values try to suggest an existing +value via spell checking. +.TP .B "-dump" DEBUG OPTION. Print the code's intermediate representation before the optimization and finalization passes to stdout before generating the diff --git a/gmqcc.h b/gmqcc.h index 553197a..a6053a6 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -1149,6 +1149,7 @@ typedef struct { bool pp_only; /* -E */ size_t max_array_size; /* --max-array= */ bool add_info; /* --add-info */ + bool correction; /* --correct */ uint32_t flags [1 + (COUNT_FLAGS / 32)]; uint32_t warn [1 + (COUNT_WARNINGS / 32)]; diff --git a/gmqcc.ini.example b/gmqcc.ini.example index 5a6339a..763b393 100644 --- a/gmqcc.ini.example +++ b/gmqcc.ini.example @@ -99,10 +99,6 @@ # variables with the name 'nil' to be declared. PREMISSIVE = false - # Enable enhanced diagnostic messages. i.e provides a "did you mean" - # when you accidently typo. Amongst others - ENHANCED_DIAGNOSTICS = true - # Allow vararg access from within QC of the form: ...(argnumber, type) VARIADIC_ARGS = true diff --git a/main.c b/main.c index ff67262..2b055d2 100644 --- a/main.c +++ b/main.c @@ -465,6 +465,14 @@ static bool options_parse(int argc, char **argv) { opts.quiet = true; break; } + else if (!strcmp(argv[0]+2, "correct")) { + opts.correction = true; + break; + } + else if (!strcmp(argv[0]+2, "no-correct")) { + opts.correction = false; + break; + } else if (!strcmp(argv[0]+2, "add-info")) { opts.add_info = true; break; diff --git a/opts.c b/opts.c index ef7b10e..0c8d3f4 100644 --- a/opts.c +++ b/opts.c @@ -27,7 +27,8 @@ opts_cmd_t opts; /* command lien options */ static void opts_setdefault() { memset(&opts, 0, sizeof(opts_cmd_t)); - + opts.correction = true; + /* warnings */ opts_set(opts.warn, WARN_UNUSED_VARIABLE, true); opts_set(opts.warn, WARN_USED_UNINITIALIZED, true); @@ -65,7 +66,6 @@ static void opts_setdefault() { 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, ENHANCED_DIAGNOSTICS, true); } void opts_backup_non_Wall() { diff --git a/opts.def b/opts.def index 65c2d9e..2cd21cf 100644 --- a/opts.def +++ b/opts.def @@ -48,7 +48,6 @@ GMQCC_DEFINE_FLAG(LOOP_LABELS) GMQCC_DEFINE_FLAG(UNTYPED_NIL) GMQCC_DEFINE_FLAG(PERMISSIVE) - GMQCC_DEFINE_FLAG(ENHANCED_DIAGNOSTICS) GMQCC_DEFINE_FLAG(VARIADIC_ARGS) #endif diff --git a/parser.c b/parser.c index 53c7867..3ed0f08 100644 --- a/parser.c +++ b/parser.c @@ -1795,7 +1795,7 @@ static ast_expression* parse_expression_leave(parser_t *parser, bool stopatcomma * We should also consider adding correction tables for * other things as well. */ - if (OPTS_FLAG(ENHANCED_DIAGNOSTICS)) { + if (opts.correction) { correction_t corr; correct_init(&corr);