Currently, we add the FFICall effect when an FFI function is called, not when it is declared. This seems wrong because when an FFI function is public, e.g.
pub extern "C" fn do_some_shady_stuff(...) { ... }
The function is not marked as having any effects, but calling it is clearly dangerous.
This shows up on the system-configuration-sys crate (v 0.5.0) as found by @deian leading to, confusingly, no effects in this crate, and I also copied the relevant source code file to the test-crates/ffi-ex example crate so we can track its results on make test
v0 tasks:
v1 tasks:
Currently, we add the
FFICalleffect when an FFI function is called, not when it is declared. This seems wrong because when an FFI function is public, e.g.The function is not marked as having any effects, but calling it is clearly dangerous.
This shows up on the
system-configuration-syscrate (v 0.5.0) as found by @deian leading to, confusingly, no effects in this crate, and I also copied the relevant source code file to thetest-crates/ffi-exexample crate so we can track its results onmake testv0 tasks:
v1 tasks:
FFICalleffect when FFI functions are called, as this would now be redundantmake testand make sure the changes look reasonable