ref: 3a496c143eb8aad32c03c7067c54807256949c97
parent: 26d2752901f380a5ea22935f49e58e29f404a54a
	author: Ori Bernstein <ori@eigenstate.org>
	date: Fri Jan  8 19:46:01 EST 2016
	
Don't attach wildcards *AFTER* accept nodes.
--- a/mi/match.c
+++ b/mi/match.c
@@ -34,7 +34,6 @@
/* captured variables and action */
Node **cap;
size_t ncap;
-
};
Dtree *gendtree(Node *m, Node *val, Node **lbl, size_t nlbl);
@@ -227,7 +226,7 @@
size_t i;
int ret;
- if (t->any == accept)
+ if (t->accept || t->any == accept)
return 0;
ret = 0;
@@ -257,7 +256,7 @@
ntail = 0;
ty = tybase(ty);
 	if (istyprimitive(ty) || ty->type == Tyvoid) {- if (start == accept)
+ if (start->accept || start == accept)
return 0;
for (i = 0; i < start->nnext; i++)
lappend(end, nend, start->next[i]);
@@ -567,19 +566,14 @@
tail = NULL;
ntail = 0;
+ /* add a _ capture if we don't specify the value */
 		if (!memb) {memb = mkexpr(ty->sdecls[i]->loc, Ogap, NULL);
memb->expr.type = mty;
}
 		for (j = 0; j < nlast; j++) {- /* add a _ capture if we don't specify the value */
-			if (!memb) {- if (addwild(memb, NULL, last[j], next, NULL, NULL, &tail, &ntail))
- ret = 1;
-			} else {- if (addpat(memb, structmemb(val, name, mty), last[j], next, cap, ncap, &tail, &ntail))
- ret = 1;
- }
+ if (addpat(memb, structmemb(val, name, mty), last[j], next, cap, ncap, &tail, &ntail))
+ ret = 1;
}
lfree(&last, &nlast);
last = tail;
--- a/mk/c.mk
+++ b/mk/c.mk
@@ -9,7 +9,7 @@
_LIBPATHS=$(addprefix -l, $(patsubst lib%.a,%,$(notdir $(DEPS)))) $(_PCLIBS)
# yeah, I should probably remove -Werror, but it's nice for developing alone.
-CFLAGS += -Wall -Wextra -Werror -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-array-bounds -g
+CFLAGS += -Wall -Wextra -Werror -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-array-bounds -g -O0
CFLAGS += -MMD -MP -MF .deps/$(subst /,-,$*).d
LIB ?= $(INSTLIB)
--
⑨