]> git.saurik.com Git - bison.git/commit - tests/glr-regression.at
Don't leak semantic values for parent RHS when a user action cuts the
authorJoel E. Denny <jdenny@ces.clemson.edu>
Thu, 2 Mar 2006 01:35:15 +0000 (01:35 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Thu, 2 Mar 2006 01:35:15 +0000 (01:35 +0000)
commit520181ab91c52ca991b5f96ba1488319368a4214
tree02bb4eb57791b6c172bf6cf1c4fa7f733349fbbf
parent18d9185cae4c43684e4a2a134dd3090b55307586
Don't leak semantic values for parent RHS when a user action cuts the
parser, and clean up related code a bit.
* tests/glr-regression.at (Leaked merged semantic value if user action
cuts parse) Rename to...
(Leaked semantic values if user action cuts parse) ... this.  Add check
for leaked parent RHS values.
* data/glr.c (yydestroyGLRState): In debugging output, distinguish
between an unresolved state (non-empty chain of semantic options) and
an incomplete one (signaled by an empty chain).
(yyresolveStates): Document the interface.  Move all manipulation of an
successfully or unsuccessfully resolved yyGLRState to...
(yyresolveValue): ... here so that yyresolveValue always leaves a
yyGLRState with consistent data and thus is easier to understand.
Remove the yyvalp and yylocp parameters since they are always just
taken from the yys parameter.  When reporting a discarded merged value
in debugging output, note that it is incompletely merged.  Document the
interface.
(yyresolveAction): If resolving any of the RHS states fails, destroy
them all rather than leaking them.  Thus, as long as user actions are
written to clean up the RHS correctly, yyresolveAction always cleans up
the RHS of a semantic option.  Document the interface.
ChangeLog
data/glr.c
tests/glr-regression.at