mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 23:03:04 +00:00
warnings: useless semantic types
* src/symtab.h (symbol_list): Represent semantic types as structure 'semantic_type'. * src/symlist.c (symbol_list_type_new): Allocate this structure. (symbol_list_code_props_set): Set this semantic type's status to used if it was not declared. * src/symtab.c (semantic_types_sorted): New. (semantic_type_new): Set the new semantic type's location appropriately. (symbol_check_defined): If a symbol has a type, then set this type's status to "declared". (semantic_type_check_defined, semantic_type_check_defined_processor): Same as symbol_check_defined and symbol_check_defined_processor, but for semantic types. (symbol_check_defined): Check semantic types usefulness. * src/symtab.h (semantic_type): New fields 'location' and 'status'. * src/symtab.h, src/symtab.c (semantic_type_new) (semantic_type_from_uniqstr, semantic_type_get): Accept a location as a supplementary argument. * tests/input.at (Unassociated types used for printer of destructor): New. * tests/c++.at (AT_CHECK_VARIANTS): Fix an error caught by this commit.
This commit is contained in:
committed by
Akim Demaille
parent
423ca9b50e
commit
9641b918ba
17
NEWS
17
NEWS
@@ -2,6 +2,23 @@ GNU Bison NEWS
|
||||
|
||||
* Noteworthy changes in release ?.? (????-??-??) [?]
|
||||
|
||||
** Warnings about useless semantic types
|
||||
|
||||
Bison now warns about useless (uninhabited) semantic types. Since
|
||||
semantic types are not declared to Bison (they are defined in the opaque
|
||||
%union structure), it is %printer/%destructor directives about useless
|
||||
types that trigger the warning:
|
||||
|
||||
%token <type1> term
|
||||
%type <type2> nterm
|
||||
%printer {} <type1> <type3>
|
||||
%destructor {} <type2> <type4>
|
||||
%%
|
||||
nterm: term { $$ = $1; };
|
||||
|
||||
3.28-34: warning: type <type3> is used, but is not associated to any symbol
|
||||
4.28-34: warning: type <type4> is used, but is not associated to any symbol
|
||||
|
||||
** Warnings about undeclared symbols
|
||||
|
||||
Bison used to raise an error for %printer and %destructor directives for
|
||||
|
||||
Reference in New Issue
Block a user