summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/muscle-tab.c9
-rw-r--r--tests/skeletons.at15
2 files changed, 20 insertions, 4 deletions
diff --git a/src/muscle-tab.c b/src/muscle-tab.c
index 43911d3e..0945d609 100644
--- a/src/muscle-tab.c
+++ b/src/muscle-tab.c
@@ -294,10 +294,11 @@ muscle_location_grow (char const *key, location loc)
case '@': \
switch (*++(Value)) \
{ \
- case '@': obstack_sgrow (&muscle_obstack, "@" ); break; \
- case '{': obstack_sgrow (&muscle_obstack, "[" ); break; \
- case '}': obstack_sgrow (&muscle_obstack, "]" ); break; \
- default: aver (false); break; \
+ case '\'': /* Ignore "@'" */ break; \
+ case '@': obstack_sgrow (&muscle_obstack, "@" ); break; \
+ case '{': obstack_sgrow (&muscle_obstack, "[" ); break; \
+ case '}': obstack_sgrow (&muscle_obstack, "]" ); break; \
+ default: aver (false); break; \
} \
break; \
default: \
diff --git a/tests/skeletons.at b/tests/skeletons.at
index e1b86514..13f796b5 100644
--- a/tests/skeletons.at
+++ b/tests/skeletons.at
@@ -369,5 +369,20 @@ AT_BISON_CHECK([[input1.y]], [], [],
input1.tab.c:13: warning: suspicious sequence in the output: m4@&t@_poison [-Wother]
]])
+# Regression test for <https://github.com/akimd/bison/issues/91>.
+AT_DATA([[input2.y]],
+[[%define parse.trace {m4@&t@_foo}
+%debug
+%%
+exp:
+]])
+
+AT_BISON_CHECK([[input2.y]], [1], [],
+[[input2.y:1.1-28: warning: %define variable 'parse.trace' requires keyword values [-Wdeprecated]
+input2.y:1.1-28: error: invalid value for %define Boolean variable 'parse.trace'
+input2.y:2.1-6: error: %define variable 'parse.trace' redefined
+input2.y:1.1-28: note: previous definition
+input2.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
+]])
AT_CLEANUP