Don't use VOL internally, because "volatile" works just fine
authorAaron Crane <arc@cpan.org>
Thu, 12 Oct 2017 14:26:56 +0000 (16:26 +0200)
committerAaron Crane <arc@cpan.org>
Sat, 21 Oct 2017 15:51:54 +0000 (16:51 +0100)
However, we do preserve it outside PERL_CORE for the use of XS authors.

embed.fnc
ext/re/re.pm
ext/re/re.xs
intrpvar.h
op.c
perl.c
perl.h
proto.h
regcomp.c
regcomp.h

index b87c5dd..05c5d88 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1237,7 +1237,7 @@ Ap        |void   |call_atexit    |ATEXIT_t fn|NULLOK void *ptr
 ApdO   |I32    |call_argv      |NN const char* sub_name|I32 flags|NN char** argv
 ApdO   |I32    |call_method    |NN const char* methname|I32 flags
 ApdO   |I32    |call_pv        |NN const char* sub_name|I32 flags
-ApdO   |I32    |call_sv        |NN SV* sv|VOL I32 flags
+ApdO   |I32    |call_sv        |NN SV* sv|volatile I32 flags
 Ap     |void   |despatch_signals
 Ap     |OP *   |doref          |NN OP *o|I32 type|bool set_op_ref
 ApdO   |SV*    |eval_pv        |NN const char* p|I32 croak_on_error
index 81c632b..0b52e1d 100644 (file)
@@ -4,7 +4,7 @@ package re;
 use strict;
 use warnings;
 
-our $VERSION     = "0.35";
+our $VERSION     = "0.36";
 our @ISA         = qw(Exporter);
 our @EXPORT_OK   = ('regmust',
                     qw(is_regexp regexp_pattern
index c2064ff..497135a 100644 (file)
@@ -18,7 +18,7 @@ START_EXTERN_C
 
 extern REGEXP* my_re_compile (pTHX_ SV * const pattern, const U32 pm_flags);
 extern REGEXP* my_re_op_compile (pTHX_ SV ** const patternp, int pat_count,
-                   OP *expr, const regexp_engine* eng, REGEXP *VOL old_re,
+                   OP *expr, const regexp_engine* eng, REGEXP *volatile old_re,
                     bool *is_bare_re, U32 rx_flags, U32 pm_flags);
 
 extern I32     my_regexec (pTHX_ REGEXP * const prog, char* stringarg, char* strend,
index 766e552..6bfbc4d 100644 (file)
@@ -557,7 +557,7 @@ PERLVAR(I, sighandlerp,     Sighandler_t)
 
 PERLVARA(I, body_roots,        PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
 
-PERLVAR(I, debug,      VOL U32)        /* flags given to -D switch */
+PERLVAR(I, debug,      volatile U32)   /* flags given to -D switch */
 
 PERLVARI(I, padlist_generation, U32, 1)        /* id to identify padlist clones */
 
diff --git a/op.c b/op.c
index 95b7971..14764ad 100644 (file)
--- a/op.c
+++ b/op.c
@@ -4448,11 +4448,11 @@ static OP *
 S_fold_constants(pTHX_ OP *const o)
 {
     dVAR;
-    OP * VOL curop;
+    OP * volatile curop;
     OP *newop;
-    VOL I32 type = o->op_type;
+    volatile I32 type = o->op_type;
     bool is_stringify;
-    SV * VOL sv = NULL;
+    SV * volatile sv = NULL;
     int ret = 0;
     OP *old_next;
     SV * const oldwarnhook = PL_warnhook;
diff --git a/perl.c b/perl.c
index 2eb697c..2540cb3 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -611,7 +611,7 @@ int
 perl_destruct(pTHXx)
 {
     dVAR;
-    VOL signed char destruct_level;  /* see possible values in intrpvar.h */
+    volatile signed char destruct_level;  /* see possible values in intrpvar.h */
     HV *hv;
 #ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
     pid_t child;
@@ -2838,14 +2838,14 @@ See L<perlcall>.
 */
 
 I32
-Perl_call_sv(pTHX_ SV *sv, VOL I32 flags)
+Perl_call_sv(pTHX_ SV *sv, volatile I32 flags)
                        /* See G_* flags in cop.h */
 {
     dVAR;
     LOGOP myop;                /* fake syntax tree node */
     METHOP method_op;
     I32 oldmark;
-    VOL I32 retval = 0;
+    volatile I32 retval = 0;
     bool oldcatch = CATCH_GET;
     int ret;
     OP* const oldop = PL_op;
@@ -2993,8 +2993,8 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
 {
     dVAR;
     UNOP myop;         /* fake syntax tree node */
-    VOL I32 oldmark;
-    VOL I32 retval = 0;
+    volatile I32 oldmark;
+    volatile I32 retval = 0;
     int ret;
     OP* const oldop = PL_op;
     dJMPENV;
@@ -5051,7 +5051,7 @@ void
 Perl_call_list(pTHX_ I32 oldscope, AV *paramList)
 {
     SV *atsv;
-    VOL const line_t oldline = PL_curcop ? CopLINE(PL_curcop) : 0;
+    volatile const line_t oldline = PL_curcop ? CopLINE(PL_curcop) : 0;
     CV *cv;
     STRLEN len;
     int ret;
diff --git a/perl.h b/perl.h
index 1623057..2d92c63 100644 (file)
--- a/perl.h
+++ b/perl.h
 #endif
 
 /* This exists only for back-compat. */
+#ifndef PERL_CORE
 #define VOL volatile
+#endif
 
 /* By compiling a perl with -DNO_TAINT_SUPPORT or -DSILENT_NO_TAINT_SUPPORT,
  * you get a perl without taint support, but doubtlessly with a lesser
diff --git a/proto.h b/proto.h
index 4e5021c..b0a54da 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -278,7 +278,7 @@ PERL_CALLCONV I32   Perl_call_method(pTHX_ const char* methname, I32 flags);
 PERL_CALLCONV I32      Perl_call_pv(pTHX_ const char* sub_name, I32 flags);
 #define PERL_ARGS_ASSERT_CALL_PV       \
        assert(sub_name)
-PERL_CALLCONV I32      Perl_call_sv(pTHX_ SV* sv, VOL I32 flags);
+PERL_CALLCONV I32      Perl_call_sv(pTHX_ SV* sv, volatile I32 flags);
 #define PERL_ARGS_ASSERT_CALL_SV       \
        assert(sv)
 PERL_CALLCONV const PERL_CONTEXT *     Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp);
index cc0ff96..18e87e1 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -14874,9 +14874,9 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                                        'stack' of where the undealt-with left
                                        parens would be if they were actually
                                        put there */
-    /* The 'VOL' (expanding to 'volatile') is a workaround for an optimiser bug
+    /* The 'volatile' is a workaround for an optimiser bug
      * in Solaris Studio 12.3. See RT #127455 */
-    VOL IV fence = 0;               /* Position of where most recent undealt-
+    volatile IV fence = 0;          /* Position of where most recent undealt-
                                        with left paren in stack is; -1 if none.
                                      */
     STRLEN len;                     /* Temporary */
index 14599fa..bb746b7 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -1063,7 +1063,7 @@ re.pm, especially to the documentation.
 
 #ifdef DEBUGGING
 
-#define GET_RE_DEBUG_FLAGS_DECL VOL IV re_debug_flags  = 0; \
+#define GET_RE_DEBUG_FLAGS_DECL volatile IV re_debug_flags = 0; \
         PERL_UNUSED_VAR(re_debug_flags); GET_RE_DEBUG_FLAGS;
 
 #define RE_PV_COLOR_DECL(rpv,rlen,isuni,dsv,pv,l,m,c1,c2) \