Subject: | build fails with gcc-7.2.1 |
c++ -c -Isrc -I/pro/lib/perl5/site_perl/5.26.0/x86_64-linux-thread-multi-ld/CPP/panda/lib.x/i -I/pro/lib/perl5/site_perl/5.26.0/x86_64-linux-thread-multi-ld/CPP/catch/test.x/i -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -o XS.o -std=c++14 -g0 -O2 -DVERSION=\"2.1.8\" -DXS_VERSION=\"2.1.8\" -fPIC "-I/pro/lib/perl5/5.26.0/x86_64-linux-thread-multi-ld/CORE" XS.c
In file included from XS.xs:2:0:
src/xs/XSCallbackDispatcher.h: In member function ‘void xs::{anonymous}::ArgsConverter<Args>::operator()(Args ...)’:
src/xs/XSCallbackDispatcher.h:50:71: error: cannot convert ‘cv*’ to ‘PerlInterpreter* {aka interpreter*}’ for argument ‘1’ to ‘void xs::call_sub_void(PerlInterpreter*, CV*, SV**, I32)’
xs::call_sub_void(cv.get<CV>(), sv_args.data(), sv_args.size());
^
make: *** [Makefile:363: XS.o] Error 1
Adding two casts like
void operator ()(Args... args) {
std::vector<SV*> sv_args;
push(sv_args, args...);
xs::call_sub_void((PerlInterpreter *)cv.get<CV>(), (CV *)sv_args.data(), sv_args.size());
}
All tests successful.
Files=22, Tests=777, 1 wallclock secs ( 0.07 usr 0.03 sys + 1.08 cusr 0.15 csys = 1.33 CPU)
Result: PASS
will PASS