compiler-research / CppInterOp

A Clang-based C++ Interoperability Library
Other
38 stars 20 forks source link

Cppyy test memory leak with valgrind job on clang 16 #240

Open maximusron opened 2 months ago

maximusron commented 2 months ago

A passing test on the CI's cppyy test job contains a memory leak on with LLVM 16 that is unexpected and should be fixed

We seem to be calling an invalid delete[] operator when the Interpreter invokes the JitCall, during CPyCppyy's method execution pipeline (CPyCppyy::CPPMethod::Execute)

The test responsible is test_lowlevel/test06_ctypes_as_ref_and_ptr, something like:

# integer types
  i = POINTER(ctypes.c_short)();        ctd.set_short_ppa(i)
  assert i[0] ==  -1; assert i[1] ==  -2; assert i[2] ==  -3
  cppyy.ll.array_delete(i)

Valgrind report:

  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D711065: ???
  ==6998==    by 0x2D711030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bfac10 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D715065: ???
  ==6998==    by 0x2D715030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bfbc90 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D719065: ???
  ==6998==    by 0x2D719030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bfbc10 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D71D065: ???
  ==6998==    by 0x2D71D030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bfbb90 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D721065: ???
  ==6998==    by 0x2D721030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bfbb10 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D725065: ???
  ==6998==    by 0x2D725030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bf8290 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D729065: ???
  ==6998==    by 0x2D729030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bfbf90 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D72D065: ???
  ==6998==    by 0x2D72D030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bf8490 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D735065: ???
  ==6998==    by 0x2D735030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bf8c90 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D739065: ???
  ==6998==    by 0x2D739030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bf8d10 is in a rw- anonymous segment
  ==6998== 
  ==6998== Invalid free() / delete / delete[] / realloc()
  ==6998==    at 0x484CA8F: operator delete[](void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==6998==    by 0x2D73D065: ???
  ==6998==    by 0x2D73D030: ???
  ==6998==    by 0x101045C2: Cpp::JitCall::Invoke(void*, Cpp::JitCall::ArgList, void*) const (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x101018D8: WrapperCall(void*, unsigned long, void*, void*, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x10101A72: Cppyy::CallV(void*, void*, unsigned long, void*) (in /home/runner/work/cppyy-backend/cppyy-backend/python/cppyy_backend/lib/libcppyy-backend.so)
  ==6998==    by 0x12DEFF95: GILCallV(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12DF2824: CPyCppyy::(anonymous namespace)::VoidExecutor::Execute(void*, void*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D70E7F: CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D7048B: CPyCppyy::CPPMethod::Execute(void*, long, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D67FA3: CPyCppyy::CPPFunction::Call(CPyCppyy::CPPInstance*&, _object* const*, unsigned long, _object*, CPyCppyy::CallContext*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==    by 0x12D76BF7: CPyCppyy::(anonymous namespace)::mp_vectorcall(CPyCppyy::CPPOverload*, _object* const*, unsigned long, _object*) (in /home/runner/work/cppyy-backend/CPyCppyy/build/libcppyy.so)
  ==6998==  Address 0x14bf8d90 is in a rw- anonymous segment
  ==6998==