I upgraded my Debian system and started getting compile errors with LLVM version 17. Apparently those APIs will need to be changed. https://llvm.org/docs/OpaquePointers.html regards, dan carpenter sparse-llvm.c: In function ‘get_sym_value’: sparse-llvm.c:305:34: warning: implicit declaration of function ‘LLVMConstGEP’; did you mean ‘LLVMConstGEP2’? [-Wimplicit-function-declaration] 305 | result = LLVMConstGEP(data, indices, ARRAY_SIZE(indices)); | ^~~~~~~~~~~~ | LLVMConstGEP2 sparse-llvm.c:305:32: warning: assignment to ‘LLVMValueRef’ {aka ‘struct LLVMOpaqueValue *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 305 | result = LLVMConstGEP(data, indices, ARRAY_SIZE(indices)); | ^ sparse-llvm.c: In function ‘calc_gep’: sparse-llvm.c:488:16: warning: implicit declaration of function ‘LLVMBuildInBoundsGEP’; did you mean ‘LLVMBuildInBoundsGEP2’? [-Wimplicit-function-declaration] 488 | addr = LLVMBuildInBoundsGEP(builder, base, &off, 1, name); | ^~~~~~~~~~~~~~~~~~~~ | LLVMBuildInBoundsGEP2 sparse-llvm.c:488:14: warning: assignment to ‘LLVMValueRef’ {aka ‘struct LLVMOpaqueValue *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 488 | addr = LLVMBuildInBoundsGEP(builder, base, &off, 1, name); | ^ sparse-llvm.c: In function ‘output_op_load’: sparse-llvm.c:714:18: warning: implicit declaration of function ‘LLVMBuildLoad’; did you mean ‘LLVMBuildLoad2’? [-Wimplicit-function-declaration] 714 | target = LLVMBuildLoad(fn->builder, addr, name); | ^~~~~~~~~~~~~ | LLVMBuildLoad2 sparse-llvm.c:714:16: warning: assignment to ‘LLVMValueRef’ {aka ‘struct LLVMOpaqueValue *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 714 | target = LLVMBuildLoad(fn->builder, addr, name); | ^ sparse-llvm.c: In function ‘output_op_call’: sparse-llvm.c:822:18: warning: implicit declaration of function ‘LLVMBuildCall’; did you mean ‘LLVMBuildCall2’? [-Wimplicit-function-declaration] 822 | target = LLVMBuildCall(fn->builder, func, args, n_arg, name); | ^~~~~~~~~~~~~ | LLVMBuildCall2 sparse-llvm.c:822:16: warning: assignment to ‘LLVMValueRef’ {aka ‘struct LLVMOpaqueValue *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 822 | target = LLVMBuildCall(fn->builder, func, args, n_arg, name); | ^