mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-15 07:13:02 +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:
@@ -54,6 +54,7 @@ typedef struct symbol_list
|
||||
symbol *ruleprec;
|
||||
int dprec;
|
||||
int merger;
|
||||
location merger_declaration_location;
|
||||
|
||||
/* The list. */
|
||||
struct symbol_list *next;
|
||||
|
||||
Reference in New Issue
Block a user