summaryrefslogtreecommitdiff
path: root/parser.h
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2007-07-16 13:15:37 +0000
committerDave Mitchell <davem@fdisolutions.com>2007-07-16 13:15:37 +0000
commit503de4705ff6537018ae94e9179e16636748b2a6 (patch)
treed022d6d730a079eac8721ce355c9ae08c781a689 /parser.h
parent4629c4f60ec83d0f102cd8ac641c8eefa2bb4a6f (diff)
downloadperl-503de4705ff6537018ae94e9179e16636748b2a6.tar.gz
[perl #43425] local $[: fix scoping during parser error handling.
Change 22306# inadvertently made 'local $[' statement-scoped rather than block-scoped; so revert that change and add a different fix. The problem was to ensure that the savestack got popped correctly while popping errored tokens. We how record the current value of PL_savestack_ix with each pushed parser state. p4raw-id: //depot/perl@31615
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/parser.h b/parser.h
index f62ac3d15c..363e0ee2bc 100644
--- a/parser.h
+++ b/parser.h
@@ -17,6 +17,7 @@ typedef struct {
AV *comppad; /* value of PL_comppad when this value was created */
#ifdef DEBUGGING
const char *name; /* token/rule name for -Dpv */
+ I32 savestack_ix; /* size of savestack at this state */
#endif
} yy_stack_frame;