summaryrefslogtreecommitdiffstats
path: root/y.tab.c.shipped
diff options
context:
space:
mode:
Diffstat (limited to 'y.tab.c.shipped')
-rw-r--r--y.tab.c.shipped14
1 files changed, 9 insertions, 5 deletions
diff --git a/y.tab.c.shipped b/y.tab.c.shipped
index 2345cb9a..a148a9b3 100644
--- a/y.tab.c.shipped
+++ b/y.tab.c.shipped
@@ -6767,13 +6767,17 @@ static val extract_vars(val output_spec)
if (consp(output_spec)) {
val sym = first(output_spec);
if (sym == var_s) {
- val name = second(output_spec);
+ val expr = second(output_spec);
val modifiers = third(output_spec);
- if (bindable(name))
- tai = list_collect(tai, name);
- else
- tai = list_collect_nconc(tai, extract_vars(name));
+ if (bindable(expr)) {
+ tai = list_collect(tai, expr);
+ } else if (opt_compat && opt_compat <= 128) {
+ tai = list_collect_nconc(tai, extract_vars(expr));
+ } else {
+ val frefs = expand_with_free_refs(expr, nil, nil);
+ tai = list_collect_nconc(tai, second(frefs));
+ }
for (; modifiers; modifiers = cdr(modifiers)) {
val mod = car(modifiers);