Skip to content

Odd compiler warning #1340

@ccleve

Description

@ccleve

I just upgraded to v0.11.0 from 0.10.something. I now get this compiler warning:

warning: `extern` block uses type `NodeTag`, which is not FFI-safe
  --> src/cfuncs/bindings.rs:11:16
   |
11 |         index: Relation,
   |                ^^^^^^^^ not FFI-safe
   |
   = note: this enum is non-exhaustive
   = note: `#[warn(improper_ctypes)]` on by default

on this code:

extern "C" {
    pub fn rdb_read_page(
        index: Relation,
        blkno: u32,
        lock_type: ::std::os::raw::c_int,
        pg_buffer: *mut u32,
    ) -> *mut ::std::os::raw::c_char;
}

This points to a function I wrote in C to read/write pages in an index relation.

This warning is a bit odd, because NodeTag doesn't appear in the method signature and I don't know why Relation would not be ffi-safe.

I've been using this code successfully for quite a while now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions