mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
build: re-enable compiler warnings, and fix them
There are warnings (-Wextra) in generated C++ code:
ltlparse.cc: In member function 'ltlyy::parser::symbol_number_type
ltlyy::parser::by_state::type_get() const':
ltlparse.cc:452:33: warning: enumeral and non-enumeral type in
conditional expression
return state == empty_state ? empty_symbol : yystos_[state];
Reported by Alexandre Duret-Lutz.
It turns out that -Wall and -Wextra were disabled because of a stupid
typo.
* configure.ac: Fix the stupid typo.
* data/lalr1.cc, src/AnnotationList.c, src/InadequacyList.c,
* src/ielr.c, src/print.c, src/scan-code.l, src/symlist.c,
* src/symlist.h, src/symtab.c, src/tables.c, tests/actions.at,
* tests/calc.at, tests/cxx-type.at, tests/glr-regression.at,
* tests/named-refs.at, tests/torture.at:
Fix warnings, mostly issues about variables used only with assertions,
which are disabled with -DNDEBUG.
This commit is contained in:
@@ -81,7 +81,7 @@ AC_ARG_ENABLE([gcc-warnings],
|
||||
[enable_gcc_warnings=no])
|
||||
AM_CONDITIONAL([ENABLE_GCC_WARNINGS], [test "$enable_gcc_warnings" = yes])
|
||||
if test "$enable_gcc_warnings" = yes; then
|
||||
warn_common='-Wall-Wextra -Wno-sign-compare -Wcast-align -Wdocumentation
|
||||
warn_common='-Wall -Wextra -Wno-sign-compare -Wcast-align -Wdocumentation
|
||||
-Wformat -Wpointer-arith -Wwrite-strings'
|
||||
warn_c='-Wbad-function-cast -Wshadow -Wstrict-prototypes'
|
||||
warn_cxx='-Wnoexcept'
|
||||
|
||||
@@ -149,10 +149,11 @@ b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])])
|
||||
m4_define([b4_shared_declarations],
|
||||
[b4_percent_code_get([[requires]])[
|
||||
]b4_parse_assert_if([# include <cassert>])[
|
||||
# include <vector>
|
||||
# include <cstdlib> // std::abort
|
||||
# include <iostream>
|
||||
# include <stdexcept>
|
||||
# include <string>]b4_defines_if([[
|
||||
# include <string>
|
||||
# include <vector>]b4_defines_if([[
|
||||
# include "stack.hh"
|
||||
]b4_bison_locations_if([[# include "location.hh"]])])[
|
||||
]b4_variant_if([b4_variant_includes])[
|
||||
@@ -569,7 +570,10 @@ m4_if(b4_prefix, [yy], [],
|
||||
]b4_parser_class_name[::symbol_number_type
|
||||
]b4_parser_class_name[::by_state::type_get () const
|
||||
{
|
||||
return state == empty_state ? empty_symbol : yystos_[state];
|
||||
if (state == empty_state)
|
||||
return empty_symbol;
|
||||
else
|
||||
return yystos_[state];
|
||||
}
|
||||
|
||||
inline
|
||||
@@ -622,6 +626,10 @@ m4_if(b4_prefix, [yy], [],
|
||||
std::ostream& yyoutput = yyo;
|
||||
YYUSE (yyoutput);
|
||||
symbol_number_type yytype = yysym.type_get ();
|
||||
// Avoid a (spurious) G++ 4.8 warning about "array subscript is
|
||||
// below array bounds".
|
||||
if (yysym.empty ())
|
||||
std::abort ();
|
||||
yyo << (yytype < yyntokens_ ? "token" : "nterm")
|
||||
<< ' ' << yytname_[yytype] << " ("]b4_locations_if([
|
||||
<< yysym.location << ": "])[;
|
||||
|
||||
@@ -546,7 +546,7 @@ AnnotationList__compute_from_inadequacies (
|
||||
AnnotationList__insertInto (annotation_node,
|
||||
&annotation_lists[s->number],
|
||||
s->nitems);
|
||||
aver (b);
|
||||
aver (b); (void) b;
|
||||
}
|
||||
/* This aver makes sure the
|
||||
AnnotationList__computeDominantContribution check above
|
||||
|
||||
@@ -66,7 +66,7 @@ symbol *
|
||||
InadequacyList__getContributionToken (InadequacyList const *self,
|
||||
ContributionIndex i)
|
||||
{
|
||||
aver (0 <= i && i < self->contributionCount);
|
||||
aver (0 <= i && i < self->contributionCount); (void) i;
|
||||
return self->inadequacy.conflict.token;
|
||||
}
|
||||
|
||||
|
||||
@@ -1102,7 +1102,10 @@ ielr (void)
|
||||
else if (STREQ (type, "canonical-lr"))
|
||||
lr_type = LR_TYPE__CANONICAL_LR;
|
||||
else
|
||||
aver (false);
|
||||
{
|
||||
aver (false);
|
||||
abort ();
|
||||
}
|
||||
free (type);
|
||||
}
|
||||
|
||||
|
||||
@@ -343,6 +343,7 @@ print_reductions (FILE *out, state *s)
|
||||
|| (STREQ (default_reductions, "consistent")
|
||||
&& default_reduction_only)
|
||||
|| (reds->num == 1 && reds->rules[0]->number == 0));
|
||||
(void) default_reduction_only;
|
||||
free (default_reductions);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -664,7 +664,7 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
|
||||
|
||||
case LHS_REF:
|
||||
if (!type_name)
|
||||
type_name = symbol_list_n_type_name_get (rule, dollar_loc, 0);
|
||||
type_name = symbol_list_n_type_name_get (rule, 0);
|
||||
|
||||
if (!type_name)
|
||||
{
|
||||
@@ -695,8 +695,7 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
|
||||
if (max_left_semantic_context < 1 - n)
|
||||
max_left_semantic_context = 1 - n;
|
||||
if (!type_name && 0 < n)
|
||||
type_name =
|
||||
symbol_list_n_type_name_get (effective_rule, dollar_loc, n);
|
||||
type_name = symbol_list_n_type_name_get (effective_rule, n);
|
||||
if (!type_name)
|
||||
{
|
||||
if (union_seen | tag_seen)
|
||||
|
||||
@@ -190,7 +190,7 @@ symbol_list_n_get (symbol_list *l, int n)
|
||||
`--------------------------------------------------------------*/
|
||||
|
||||
uniqstr
|
||||
symbol_list_n_type_name_get (symbol_list *l, location loc, int n)
|
||||
symbol_list_n_type_name_get (symbol_list *l, int n)
|
||||
{
|
||||
return symbol_list_n_get (l, n)->content.sym->type_name;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ symbol_list *symbol_list_n_get (symbol_list *l, int n);
|
||||
|
||||
/* Get the data type (alternative in the union) of the value for
|
||||
symbol N in rule RULE. */
|
||||
uniqstr symbol_list_n_type_name_get (symbol_list *l, location loc, int n);
|
||||
uniqstr symbol_list_n_type_name_get (symbol_list *l, int n);
|
||||
|
||||
/* Check whether the node is a border element of a rule. */
|
||||
bool symbol_list_null (symbol_list *node);
|
||||
|
||||
@@ -145,7 +145,7 @@ code_props_type_string (code_props_type kind)
|
||||
case printer:
|
||||
return "%printer";
|
||||
}
|
||||
assert (0);
|
||||
abort ();
|
||||
}
|
||||
|
||||
/*----------------------------------------.
|
||||
|
||||
@@ -698,7 +698,7 @@ pack_vector (vector_number vector)
|
||||
|
||||
if (ok)
|
||||
{
|
||||
int loc;
|
||||
int loc PACIFY_CC (= -1);
|
||||
int k;
|
||||
for (k = 0; k < t; k++)
|
||||
{
|
||||
|
||||
@@ -633,7 +633,7 @@ main (int argc, const char *argv[])
|
||||
{
|
||||
int status;
|
||||
yydebug = !!getenv ("YYDEBUG");
|
||||
assert (argc == 2);
|
||||
assert (argc == 2); (void) argc;
|
||||
source = argv[1];
|
||||
status = yyparse ();
|
||||
switch (status)
|
||||
|
||||
@@ -94,8 +94,8 @@ main (int argc, const char **argv)
|
||||
status = ]AT_NAME_PREFIX[parse (]AT_PARAM_IF([[&result, &count]])[);
|
||||
if (fclose (input))
|
||||
perror ("fclose");
|
||||
assert (global_result == result);
|
||||
assert (global_count == count);
|
||||
assert (global_result == result); (void) result;
|
||||
assert (global_count == count); (void) count;
|
||||
return status;
|
||||
}
|
||||
]])
|
||||
|
||||
@@ -127,7 +127,7 @@ declarator : ID
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
assert (argc == 2);
|
||||
assert (argc == 2); (void) argc;
|
||||
if (!freopen (argv[1], "r", stdin))
|
||||
return 3;
|
||||
return yyparse ();
|
||||
|
||||
@@ -72,7 +72,7 @@ const char *input = YY_NULLPTR;
|
||||
int
|
||||
main (int argc, const char* argv[])
|
||||
{
|
||||
assert (argc == 2);
|
||||
assert (argc == 2); (void) argc;
|
||||
input = argv[1];
|
||||
return yyparse ();
|
||||
}
|
||||
|
||||
@@ -162,8 +162,8 @@ int main (int argc, const char **argv)
|
||||
}
|
||||
status = yyparse ();
|
||||
fclose (input);
|
||||
assert (global_result == result);
|
||||
assert (global_count == count);
|
||||
assert (global_result == result); (void) global_result; (void) result;
|
||||
assert (global_count == count); (void) global_count; (void) count;
|
||||
return status;
|
||||
}
|
||||
]])
|
||||
|
||||
@@ -403,7 +403,7 @@ get_args (int argc, const char **argv)
|
||||
{
|
||||
int res;
|
||||
char *endp;
|
||||
assert (argc == 2);
|
||||
assert (argc == 2); (void) argc;
|
||||
res = strtol (argv[1], &endp, 10);
|
||||
assert (argv[1] != endp);
|
||||
assert (0 <= res);
|
||||
|
||||
Reference in New Issue
Block a user