-
Notifications
You must be signed in to change notification settings - Fork 144
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
Information discarded by bindgen which we need (tracker bug) #124
Comments
Not sure I understand -- I always thought a struct was exactly identical to a class, just that it has public visibility by default? And I believe it's legal for forward declarations of a |
This is #54 - let's discuss over there. |
Thanks for the clarification -- interesting! |
For #414 and #102 many types have 'annotations' attached (the |
Note from #426: The Rust function signature for copy constructors and move constructors is the same, so bindgen needs to add an annotation that allows us to distinguish between them. |
bindgen doesn't pass on quite all the information we need in order to be able to generate autocxx bindings. Options in the future might be to fork bindgen, ask very nicely if they mind us upstreaming patches to add metadata, or switch away from bindgen and use llvm directly.
In any case this bug will be a live tracker of all known cases where we don't have all the information that we require about the underlying C++.
struct
s in the bindgen output. When we then generate extra C++ we have to plump for one or the other. In some ABIs this will result in a binary incompatibility or failure to compile. Per Classes result in build warnings; build failure on Windows #54.a(uint32_t)
anda(uint8_t)
will be output asa
anda1
. There is no way for us to distinguish that from methods really calleda
anda1
. Worse, this is across all the types in a namespace, soMyStruct::a
andMyOtherStruct::a
becomeMyStruct::a
andMyOtherStruct::a1
.struct
nested inside anotherstruct
is not noted in the bindgen output, so we can't generate compatible C++ code - Nested types don't work #115.The text was updated successfully, but these errors were encountered: