mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-11 05:13:04 +00:00
Don't miss %merge result type warnings just because the LHS types are
declared after the %merge. * src/reader.c (get_merge_function): Don't set the merger type yet. (record_merge_function_type): New function for setting the merger type and checking for clashes. (grammar_current_rule_merge_set): Set the location of the %merge for the current rule. (packgram): Invoke record_merge_function_type for each rule now that all symbol type declarations have been parsed. * src/reader.h (merger_list.type_declaration_location): New member storing the location of the first %merge from which the type for this merging function was derived. * src/symlist.h (symbol_list.merger_declaration_location): New member storing the location of a rule's %merge, if any. * tests/glr-regression.at (Missed %merge type warnings when LHS type is declared later): New test to catch the error fixed by the above patch.
This commit is contained in:
@@ -33,6 +33,7 @@ typedef struct merger_list
|
||||
struct merger_list* next;
|
||||
uniqstr name;
|
||||
uniqstr type;
|
||||
location type_declaration_location;
|
||||
} merger_list;
|
||||
|
||||
/* From the parser. */
|
||||
|
||||
Reference in New Issue
Block a user