push
github
Fix C file generation in jit.bcsave. Thanks to codicodi. (cherry picked from commit 62903bacf) LuaJIT allows exporting bytecode to a C file using the option `-b`, see [1]. For building a generated C file in C++ projects, C file uses a macro `__cplusplus` [2], but this macro was broken by the commit a9dd47b7f ("Extend -b to generate c/h/obj/o files with embedded bytecode."). With this breakage, C/C++ compiler removes the definition of an array with the bytecode, and the resulted object file misses a symbol with the bytecode. The patch fixes the broken macro. Note, test test/lua-Harness-tests/411-luajit.t checks the presence of the macro `__cplusplus` in the generated C file, however, it doesn't catch the bug. Sergey Bronnikov: * added the description and the test for the problem Part of tarantool/tarantool#9145 1. https://luajit.org/running.html 2. https://en.cppreference.com/w/cpp/preprocessor/replace
5659 of 6016 branches covered (94.07%)
Branch coverage included in aggregate %.
21598 of 23409 relevant lines covered (92.26%)
2818254.98 hits per line