summaryrefslogtreecommitdiff
path: root/regcomp.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2013-01-21 20:58:49 +0100
committerNicholas Clark <nick@ccl4.org>2013-03-19 11:53:19 +0100
commitd2d8c7119aed4a86948ff470a23161eb2f07f551 (patch)
treefac1c83caf7b5e5a203f143ce2045284a148313c /regcomp.h
parent1067df30ae91aad06ce62722a2ebd437e25358bf (diff)
downloadperl-d2d8c7119aed4a86948ff470a23161eb2f07f551.tar.gz
Revert "PATCH: regex longjmp flaws"
This reverts commit 595598ee1f247e72e06e4cfbe0f98406015df5cc. The netbsd - 5.0.2 compiler pointed out that the recent changes to add longjmps to speed up some regex compilations can result in clobbering a few values. These depend on the compiled code, and so didn't show up in other compiler's warnings. This patch reinitializes them after a longjmp. [With a lot of hand editing in regcomp.c, to propagate the changes through subsequent commits.]
Diffstat (limited to 'regcomp.h')
-rw-r--r--regcomp.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/regcomp.h b/regcomp.h
index 960732666b..21d2e1e351 100644
--- a/regcomp.h
+++ b/regcomp.h
@@ -829,11 +829,9 @@ re.pm, especially to the documentation.
if (re_debug_flags & RE_DEBUG_EXTRA_GPOS) x )
/* initialization */
-/* get_sv() can return NULL during global destruction. re_debug_flags can get
- * clobbered by a longjmp, so must be initialized */
+/* get_sv() can return NULL during global destruction. */
#define GET_RE_DEBUG_FLAGS DEBUG_r({ \
SV * re_debug_flags_sv = NULL; \
- re_debug_flags = 0; \
re_debug_flags_sv = get_sv(RE_DEBUG_FLAGS, 1); \
if (re_debug_flags_sv) { \
if (!SvIOK(re_debug_flags_sv)) \