summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
Diffstat (limited to 'Src')
-rw-r--r--Src/exec.c2
-rw-r--r--Src/params.c11
2 files changed, 7 insertions, 6 deletions
diff --git a/Src/exec.c b/Src/exec.c
index fc31c6be0..acc867c77 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -2264,7 +2264,7 @@ addvars(Estate state, Wordcode pc, int addflags)
* is implicitly scoped.
*/
flags = (!(addflags & ADDVAR_RESTORE) &&
- locallevel > 0 && isset(WARNCREATEGLOBAL)) ?
+ locallevel > forklevel && isset(WARNCREATEGLOBAL)) ?
ASSPM_WARN_CREATE : 0;
xtr = isset(XTRACE);
if (xtr) {
diff --git a/Src/params.c b/Src/params.c
index 142697f20..aed72d447 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -2868,7 +2868,7 @@ mod_export Param
setsparam(char *s, char *val)
{
return assignsparam(
- s, val, isset(WARNCREATEGLOBAL) && locallevel > 0 ?
+ s, val, isset(WARNCREATEGLOBAL) && locallevel > forklevel ?
ASSPM_WARN_CREATE : 0);
}
@@ -2966,7 +2966,7 @@ mod_export Param
setaparam(char *s, char **aval)
{
return assignaparam(
- s, aval, isset(WARNCREATEGLOBAL) && locallevel >0 ?
+ s, aval, isset(WARNCREATEGLOBAL) && locallevel > forklevel ?
ASSPM_WARN_CREATE : 0);
}
@@ -2997,7 +2997,7 @@ sethparam(char *s, char **val)
if (!(v = fetchvalue(&vbuf, &s, 1, SCANPM_ASSIGNING))) {
DPUTS(!v, "BUG: assigning to undeclared associative array");
createparam(t, PM_HASHED);
- checkcreate = isset(WARNCREATEGLOBAL) && locallevel > 0;
+ checkcreate = isset(WARNCREATEGLOBAL) && locallevel > forklevel;
} else if (!(PM_TYPE(v->pm->node.flags) & PM_HASHED) &&
!(v->pm->node.flags & PM_SPECIAL)) {
unsetparam(t);
@@ -3075,7 +3075,7 @@ setnparam(char *s, mnumber val)
/* errflag |= ERRFLAG_ERROR; */
return NULL;
}
- if (!was_unset && isset(WARNCREATEGLOBAL) && locallevel > 0)
+ if (!was_unset && isset(WARNCREATEGLOBAL) && locallevel > forklevel)
check_warn_create(v->pm, "numeric");
}
setnumvalue(v, val);
@@ -3113,7 +3113,8 @@ setiparam_no_convert(char *s, zlong val)
convbase(buf, val, 10);
return assignsparam(
s, ztrdup(buf),
- isset(WARNCREATEGLOBAL) && locallevel > 0 ? ASSPM_WARN_CREATE : 0);
+ isset(WARNCREATEGLOBAL) && locallevel > forklevel ?
+ ASSPM_WARN_CREATE : 0);
}
/* Unset a parameter */