aboutsummaryrefslogtreecommitdiff
path: root/lvm.c
diff options
context:
space:
mode:
authorRoberto I <roberto@inf.puc-rio.br>2025-11-08 11:43:42 -0300
committerRoberto I <roberto@inf.puc-rio.br>2025-11-08 11:43:42 -0300
commite44f3a2ffc7ced5e75cca7657aaa60ef27da89aa (patch)
tree090174ab9a66fbec195e9dd539710ab19370ec2f /lvm.c
parentf791bb69061c15f73395c5a95958ac18af5ef764 (diff)
downloadlua-e44f3a2ffc7ced5e75cca7657aaa60ef27da89aa.tar.gz
lua-e44f3a2ffc7ced5e75cca7657aaa60ef27da89aa.tar.bz2
lua-e44f3a2ffc7ced5e75cca7657aaa60ef27da89aa.zip
Global initialization checks name conflict
Initialization "global a = 10" raises an error if global 'a' is already defined, that is, it has a non-nil value.
Diffstat (limited to 'lvm.c')
-rw-r--r--lvm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lvm.c b/lvm.c
index efb0db28..2a9fb67a 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1940,6 +1940,12 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
1940 luaT_getvararg(ci, ra, rc); 1940 luaT_getvararg(ci, ra, rc);
1941 vmbreak; 1941 vmbreak;
1942 } 1942 }
1943 vmcase(OP_ERRNNIL) {
1944 TValue *ra = vRA(i);
1945 if (!ttisnil(ra))
1946 halfProtect(luaG_errnnil(L, cl, GETARG_Bx(i)));
1947 vmbreak;
1948 }
1943 vmcase(OP_VARARGPREP) { 1949 vmcase(OP_VARARGPREP) {
1944 ProtectNT(luaT_adjustvarargs(L, ci, cl->p)); 1950 ProtectNT(luaT_adjustvarargs(L, ci, cl->p));
1945 if (l_unlikely(trap)) { /* previous "Protect" updated trap */ 1951 if (l_unlikely(trap)) { /* previous "Protect" updated trap */