Hello,
gcc 11.1.0 produces quite a litany of second thoughts when compiling llvmjit_expr.c; is there something in it?
(all 'warning' or 'note')
llvmjit_expr.c: In function ‘llvm_compile_expr’:
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1553:33: note: in expansion of macro ‘build_EvalXFunc’
1553 | build_EvalXFunc(b, mod, "ExecEvalSQLValueFunction",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1553:33: note: in expansion of macro ‘build_EvalXFunc’
1553 | build_EvalXFunc(b, mod, "ExecEvalSQLValueFunction",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1559:33: note: in expansion of macro ‘build_EvalXFunc’
1559 | build_EvalXFunc(b, mod, "ExecEvalCurrentOfExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1559:33: note: in expansion of macro ‘build_EvalXFunc’
1559 | build_EvalXFunc(b, mod, "ExecEvalCurrentOfExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1565:33: note: in expansion of macro ‘build_EvalXFunc’
1565 | build_EvalXFunc(b, mod, "ExecEvalNextValueExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1565:33: note: in expansion of macro ‘build_EvalXFunc’
1565 | build_EvalXFunc(b, mod, "ExecEvalNextValueExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1571:33: note: in expansion of macro ‘build_EvalXFunc’
1571 | build_EvalXFunc(b, mod, "ExecEvalArrayExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1571:33: note: in expansion of macro ‘build_EvalXFunc’
1571 | build_EvalXFunc(b, mod, "ExecEvalArrayExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1583:33: note: in expansion of macro ‘build_EvalXFunc’
1583 | build_EvalXFunc(b, mod, "ExecEvalRow",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1583:33: note: in expansion of macro ‘build_EvalXFunc’
1583 | build_EvalXFunc(b, mod, "ExecEvalRow",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1738:33: note: in expansion of macro ‘build_EvalXFunc’
1738 | build_EvalXFunc(b, mod, "ExecEvalMinMax",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1738:33: note: in expansion of macro ‘build_EvalXFunc’
1738 | build_EvalXFunc(b, mod, "ExecEvalMinMax",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1816:33: note: in expansion of macro ‘build_EvalXFunc’
1816 | build_EvalXFunc(b, mod, "ExecEvalConstraintNotNull",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1816:33: note: in expansion of macro ‘build_EvalXFunc’
1816 | build_EvalXFunc(b, mod, "ExecEvalConstraintNotNull",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1822:33: note: in expansion of macro ‘build_EvalXFunc’
1822 | build_EvalXFunc(b, mod, "ExecEvalConstraintCheck",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1822:33: note: in expansion of macro ‘build_EvalXFunc’
1822 | build_EvalXFunc(b, mod, "ExecEvalConstraintCheck",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1834:33: note: in expansion of macro ‘build_EvalXFunc’
1834 | build_EvalXFunc(b, mod, "ExecEvalScalarArrayOp",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1834:33: note: in expansion of macro ‘build_EvalXFunc’
1834 | build_EvalXFunc(b, mod, "ExecEvalScalarArrayOp",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1846:33: note: in expansion of macro ‘build_EvalXFunc’
1846 | build_EvalXFunc(b, mod, "ExecEvalXmlExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1846:33: note: in expansion of macro ‘build_EvalXFunc’
1846 | build_EvalXFunc(b, mod, "ExecEvalXmlExpr",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: warning: ‘build_EvalXFuncInt’ accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1872:33: note: in expansion of macro ‘build_EvalXFunc’
1872 | build_EvalXFunc(b, mod, "ExecEvalGroupingFunc",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:69:9: note: referencing argument 7 of type ‘struct LLVMOpaqueValue **’
69 | build_EvalXFuncInt(b, mod, funcname, v_state, op, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70 | lengthof(((LLVMValueRef[]){__VA_ARGS__})), \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | ((LLVMValueRef[]){__VA_ARGS__}))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvmjit_expr.c:1872:33: note: in expansion of macro ‘build_EvalXFunc’
1872 | build_EvalXFunc(b, mod, "ExecEvalGroupingFunc",
| ^~~~~~~~~~~~~~~
llvmjit_expr.c:2460:1: note: in a call to function ‘build_EvalXFuncInt’
2460 | build_EvalXFuncInt(LLVMBuilderRef b, LLVMModuleRef mod, const char *funcname,
| ^~~~~~~~~~~~~~~~~~
Erik Rijkers