You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At some point, tools::package_native_routine_registration_skeleton() changed the generated prototypes to void * from SEXP . I couldn't find a NEWS entry.
This has implications when the function's definition lives in a C++ file with extern "C" and uses SEXP, and (apparently) SEXP means something other than void * in that translation unit. My igraph 2.0.0 release came back with an LTO error (-Wodr) because of this mismatch, fixed with igraph/rigraph@9dc6ba4.
I agree that this is a corner case of a corner case, and the solution is simple. I'm still confused why the change to void * happened. I wonder if maybe cpp11 should do something about it, and again, the answer is likely "no".
The text was updated successfully, but these errors were encountered:
At some point,
tools::package_native_routine_registration_skeleton()
changed the generated prototypes tovoid *
fromSEXP
. I couldn't find aNEWS
entry.This has implications when the function's definition lives in a C++ file with
extern "C"
and usesSEXP
, and (apparently)SEXP
means something other thanvoid *
in that translation unit. My igraph 2.0.0 release came back with an LTO error (-Wodr
) because of this mismatch, fixed with igraph/rigraph@9dc6ba4.I agree that this is a corner case of a corner case, and the solution is simple. I'm still confused why the change to
void *
happened. I wonder if maybe cpp11 should do something about it, and again, the answer is likely "no".The text was updated successfully, but these errors were encountered: