lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


FYI: I compiled Lua using gcc LTO (Link Time Optimization) with optimization -O3. I got the following warning:
ldebug.c: In function ‘lua_getinfo’:
ltable.c:780:3: warning: ‘v.value_’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   setobj2t(L, cell, value);
   ^
ltable.c:780:3: warning: ‘v.value_’ may be used uninitialized in this function [-Wmaybe-uninitialized]

The issue: collectvalidlines in ldebug.c contains the following code:
TValue v;
...
setbtvalue(&v);
...
luaH_setint(L, t, currentline, &v);

Because of LTO optimizes across file boundaries the compiler figured out that 'v' does not have its 'value_' field set, but it's being used by luaH_setint. This is technically true, but probably quite irrelevant. I added "v.value_.i=0;" following "setbtvalue(&v)" and the issue went away.

I debated whether I should even report this, it's probably safe to ignore, but I'm not an expert on the internals of the interpreter.

OS: Debian 10 x86_64.
Compiler: gcc 8.3.0


--