After Clang's llvm/llvm-project#147835 we're seeing bad bindings (https://crbug.com/440975178). Here's a reduced example.
Unlike #3264 this doesn't involve any nested classes. Instead, this seems related to the removal of ElaboratedType nodes.
Header:
typedef struct cbb_st CBB;
struct cbb_st {
int x;
};
Bindings before the Clang change:
pub type CBB = cbb_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cbb_st {
pub x: ::std::os::raw::c_int,
}
[...]
After the Clang change:
pub type CBB = cbb_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cbb_st {
pub _address: u8,
}
[...]