diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2019-01-17 06:44:51 +0100 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2019-01-17 18:09:38 +0100 |
commit | 5879c8dc5a391ce3d9de68f50326121babc8d1be (patch) | |
tree | 56141ef6a8ce51e81fa1880ef3355b2867d89e78 | |
parent | d5d148630ad3d10d68a9e7634c1c8f7767335938 (diff) | |
download | bison-5879c8dc5a391ce3d9de68f50326121babc8d1be.tar.gz |
fixits: handle per-rule duplicates
* src/complain.c (duplicate_rule_directive): Here.
* tests/actions.at (Invalid uses of %empty): Check it.
-rw-r--r-- | src/complain.c | 1 | ||||
-rw-r--r-- | tests/actions.at | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/complain.c b/src/complain.c index d623bb45..82258c62 100644 --- a/src/complain.c +++ b/src/complain.c @@ -421,4 +421,5 @@ duplicate_rule_directive (char const *directive, complain_indent (&second, complaint, &i, _("only one %s allowed per rule"), directive); i += SUB_INDENT; complain_indent (&first, complaint, &i, _("previous declaration")); + fixits_register (&second, ""); } diff --git a/tests/actions.at b/tests/actions.at index e5654a47..aa1eb3aa 100644 --- a/tests/actions.at +++ b/tests/actions.at @@ -174,8 +174,35 @@ AT_BISON_CHECK([-fcaret one.y], [1], [], one.y:11.3-8: previous declaration %empty {} %empty ^~~~~~ +one.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother] ]]) +AT_BISON_CHECK([-fcaret -u one.y], [1], [], +[[one.y:11.13-18: error: only one %empty allowed per rule + %empty {} %empty + ^~~~~~ +one.y:11.3-8: previous declaration + %empty {} %empty + ^~~~~~ +bison: file 'one.y' was updated (backup: 'one.y~') +]]) + +AT_CHECK([cat one.y], [], +[[%code top { +/* Load config.h, and adjust to the compiler. + We used to do it here, but each time we add a new line, + we have to adjust all the line numbers in error messages. + It's simpler to use a constant include to a varying file. */ +#include <testsuite.h> +} + +%% +exp: + %empty {} @&t@ +; +]]) + + AT_DATA_GRAMMAR([[two.y]], [[%% exp: |