Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workaround for atomic types #2777

Open
lenianiva opened this issue Mar 5, 2024 · 0 comments
Open

Workaround for atomic types #2777

lenianiva opened this issue Mar 5, 2024 · 0 comments

Comments

@lenianiva
Copy link

Input C/C++ Header

typedef struct {
    int      m_rc;
    unsigned m_cs_sz:16;
    unsigned m_other:8;
    unsigned m_tag:8;
} lean_object;

static inline _Atomic(int) * lean_get_rc_mt_addr(lean_object* o) {
    return (_Atomic(int)*)(&(o->m_rc));
}

This case is narrowed down from lean.h

Bindgen Invocation

$ bindgen input.h --experimental --wrap-static-fns

Actual Results

When executing the above

panicked at main.rs:52:36:
Unable to generate bindings: Codegen(Serialize { msg: "Cannot serialize type kind Opaque", loc: "builtin definitions" })

Expected Results

The resulting type of lean_get_rc_mt_addr should be a rust atomic.

I've seen #2151, but is there a workaround of this other than blocklisting the above functions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant