mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 01:33:03 +00:00
cex: rename -Wcounterexample as -Wcounterexamples, and support -Wcex
Plural vs. singular is always a problem... But we already have conflicts-sr and conflicts-rr, so counterexamples makes more sense than counterexample. Besides, -Wcounterexample will still be accepted as an unambiguous prefix of -Wcounterexamples. Add -Wcex as a convenient alias. While at it, use only "counterexample", never "counter example". * src/complain.h, src/complain.c (Wcounterexample, warning_counterexample): Rename as... (Wcounterexamples, warning_counterexamples): these. (argmatch_warning_docs): Rename -Wcounterexample as -Wcounterexamples. (argmatch_warning_args): Likewise. Add support for -Wcex. Adjust dependencies.
This commit is contained in:
@@ -114,7 +114,7 @@ static const argmatch_warning_doc argmatch_warning_docs[] =
|
|||||||
{
|
{
|
||||||
{ "conflicts-sr", N_("S/R conflicts (enabled by default)") },
|
{ "conflicts-sr", N_("S/R conflicts (enabled by default)") },
|
||||||
{ "conflicts-rr", N_("R/R conflicts (enabled by default)") },
|
{ "conflicts-rr", N_("R/R conflicts (enabled by default)") },
|
||||||
{ "counterexample", N_("Conflict counter examples") },
|
{ "counterexamples", N_("generate conflict counterexamples") },
|
||||||
{ "dangling-alias", N_("string aliases not attached to a symbol") },
|
{ "dangling-alias", N_("string aliases not attached to a symbol") },
|
||||||
{ "deprecated", N_("obsolete constructs") },
|
{ "deprecated", N_("obsolete constructs") },
|
||||||
{ "empty-rule", N_("empty rules without %empty") },
|
{ "empty-rule", N_("empty rules without %empty") },
|
||||||
@@ -122,7 +122,7 @@ static const argmatch_warning_doc argmatch_warning_docs[] =
|
|||||||
{ "precedence", N_("useless precedence and associativity") },
|
{ "precedence", N_("useless precedence and associativity") },
|
||||||
{ "yacc", N_("incompatibilities with POSIX Yacc") },
|
{ "yacc", N_("incompatibilities with POSIX Yacc") },
|
||||||
{ "other", N_("all other warnings (enabled by default)") },
|
{ "other", N_("all other warnings (enabled by default)") },
|
||||||
{ "all", N_("all the warnings except 'dangling-alias' and 'yacc'") },
|
{ "all", N_("all the warnings except 'counterexamples', 'dangling-alias' and 'yacc'") },
|
||||||
{ "no-CATEGORY", N_("turn off warnings in CATEGORY") },
|
{ "no-CATEGORY", N_("turn off warnings in CATEGORY") },
|
||||||
{ "none", N_("turn off all the warnings") },
|
{ "none", N_("turn off all the warnings") },
|
||||||
{ "error[=CATEGORY]", N_("treat warnings as errors") },
|
{ "error[=CATEGORY]", N_("treat warnings as errors") },
|
||||||
@@ -131,19 +131,19 @@ static const argmatch_warning_doc argmatch_warning_docs[] =
|
|||||||
|
|
||||||
static const argmatch_warning_arg argmatch_warning_args[] =
|
static const argmatch_warning_arg argmatch_warning_args[] =
|
||||||
{
|
{
|
||||||
{ "all", Wall },
|
{ "all", Wall },
|
||||||
{ "conflicts-rr", Wconflicts_rr },
|
{ "conflicts-rr", Wconflicts_rr },
|
||||||
{ "conflicts-sr", Wconflicts_sr },
|
{ "conflicts-sr", Wconflicts_sr },
|
||||||
{ "counterexample", Wcounterexample },
|
{ "counterexamples", Wcounterexamples }, { "cex", Wcounterexamples }, // Show cex second.
|
||||||
{ "dangling-alias", Wdangling_alias },
|
{ "dangling-alias", Wdangling_alias },
|
||||||
{ "deprecated", Wdeprecated },
|
{ "deprecated", Wdeprecated },
|
||||||
{ "empty-rule", Wempty_rule },
|
{ "empty-rule", Wempty_rule },
|
||||||
{ "everything", Weverything },
|
{ "everything", Weverything },
|
||||||
{ "midrule-values", Wmidrule_values },
|
{ "midrule-values", Wmidrule_values },
|
||||||
{ "none", Wnone },
|
{ "none", Wnone },
|
||||||
{ "other", Wother },
|
{ "other", Wother },
|
||||||
{ "precedence", Wprecedence },
|
{ "precedence", Wprecedence },
|
||||||
{ "yacc", Wyacc },
|
{ "yacc", Wyacc },
|
||||||
{ NULL, Wnone }
|
{ NULL, Wnone }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ typedef enum
|
|||||||
{
|
{
|
||||||
warning_conflicts_rr,
|
warning_conflicts_rr,
|
||||||
warning_conflicts_sr,
|
warning_conflicts_sr,
|
||||||
warning_counterexample,
|
warning_counterexamples,
|
||||||
warning_dangling_alias,
|
warning_dangling_alias,
|
||||||
warning_deprecated,
|
warning_deprecated,
|
||||||
warning_empty_rule,
|
warning_empty_rule,
|
||||||
@@ -107,7 +107,7 @@ typedef enum
|
|||||||
|
|
||||||
Wconflicts_rr = 1 << warning_conflicts_rr,
|
Wconflicts_rr = 1 << warning_conflicts_rr,
|
||||||
Wconflicts_sr = 1 << warning_conflicts_sr,
|
Wconflicts_sr = 1 << warning_conflicts_sr,
|
||||||
Wcounterexample = 1 << warning_counterexample,
|
Wcounterexamples = 1 << warning_counterexamples,
|
||||||
Wdangling_alias = 1 << warning_dangling_alias,
|
Wdangling_alias = 1 << warning_dangling_alias,
|
||||||
Wdeprecated = 1 << warning_deprecated,
|
Wdeprecated = 1 << warning_deprecated,
|
||||||
Wempty_rule = 1 << warning_empty_rule,
|
Wempty_rule = 1 << warning_empty_rule,
|
||||||
@@ -124,7 +124,7 @@ typedef enum
|
|||||||
|
|
||||||
/**< All above warnings. */
|
/**< All above warnings. */
|
||||||
Weverything = ~complaint & ~fatal & ~silent,
|
Weverything = ~complaint & ~fatal & ~silent,
|
||||||
Wall = Weverything & ~Wcounterexample & ~Wdangling_alias & ~Wyacc
|
Wall = Weverything & ~Wcounterexamples & ~Wdangling_alias & ~Wyacc
|
||||||
} warnings;
|
} warnings;
|
||||||
|
|
||||||
/** Whether the warnings of \a flags are all unset.
|
/** Whether the warnings of \a flags are all unset.
|
||||||
|
|||||||
@@ -723,7 +723,7 @@ rule_conflicts_print (void)
|
|||||||
r->code, rr, expected_rr);
|
r->code, rr, expected_rr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (warning_is_enabled (Wcounterexample))
|
if (warning_is_enabled (Wcounterexamples))
|
||||||
report_counterexamples ();
|
report_counterexamples ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1036,7 +1036,7 @@ generate_next_states (search_state *ss, state_item *conflict1,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Perform the actual counter example search,
|
* Perform the actual counterexample search,
|
||||||
* keeps track of what stage of the search algorithm
|
* keeps track of what stage of the search algorithm
|
||||||
* we are at and gives the appropriate counterexample
|
* we are at and gives the appropriate counterexample
|
||||||
* type based off of time constraints.
|
* type based off of time constraints.
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ main (int argc, char *argv[])
|
|||||||
conflicts_update_state_numbers (old_to_new, nstates_old);
|
conflicts_update_state_numbers (old_to_new, nstates_old);
|
||||||
free (old_to_new);
|
free (old_to_new);
|
||||||
}
|
}
|
||||||
if (warning_is_enabled (Wcounterexample))
|
if (warning_is_enabled (Wcounterexamples))
|
||||||
counterexample_init ();
|
counterexample_init ();
|
||||||
conflicts_print ();
|
conflicts_print ();
|
||||||
timevar_pop (tv_conflicts);
|
timevar_pop (tv_conflicts);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ m4_define([AT_BISON_CHECK_CEX],
|
|||||||
[AT_DATA([experr], [$4])
|
[AT_DATA([experr], [$4])
|
||||||
sed -e ['s/time limit exceeded: [0-9][.0-9]*/time limit exceeded: XXX/g'] \
|
sed -e ['s/time limit exceeded: [0-9][.0-9]*/time limit exceeded: XXX/g'] \
|
||||||
experr >expout
|
experr >expout
|
||||||
AT_BISON_CHECK([-Wcounterexample $1], [$2], [$3], [stderr])
|
AT_BISON_CHECK([-Wcounterexamples $1], [$2], [$3], [stderr])
|
||||||
AT_CHECK([[sed -e 's/time limit exceeded: [0-9][.0-9]*/time limit exceeded: XXX/g' stderr]],
|
AT_CHECK([[sed -e 's/time limit exceeded: [0-9][.0-9]*/time limit exceeded: XXX/g' stderr]],
|
||||||
[], [expout])
|
[], [expout])
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user