diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/exec.c | 2 | ||||
-rw-r--r-- | Src/params.c | 11 |
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 */ |