summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-18codegen: Use raw pointers rather than references in vtable functions.Emilio Cobos Álvarez
Closes #2163
2022-02-18Put vtable generation behind a flag for now.Emilio Cobos Álvarez
2022-02-18Add --allowlist-file optionDavid Drysdale
2022-02-18docs: Update CONTRIBUTING.md for clang versionsDarren Kulp
2022-02-18book: Update Clang references from 3.9 -> 4.0Darren Kulp
2022-02-18tests: Remove clang-3.9 expectationsDarren Kulp
2022-02-18parser: Simplify handle_function_macro for clang 4.0+Darren Kulp
2022-02-18parser: Simplify parse_macro for clang 4.0+Darren Kulp
Here we delete a workaround that is no longer needed.
2022-02-18clang: Stop accommodating libclang 3.9Darren Kulp
2022-02-18ci: Stop testing libclang 3.9Darren Kulp
2022-02-18Allow fully-qualified derivesJake Merdich
Adding a custom derive like "serde::Deserialize" results in a panic complaining that it is not a valid Ident. Derive params are not identifiers, so treat it as a token stream instead.
2022-02-18Fix an erroneous +x bit on a source code file.Adrian Taylor
2022-01-29Bump MSRV to 1.54Mateusz Mikuła
2022-01-29Upgrade Clap to version 3Mateusz Mikuła
2022-01-29Mark all vtable functions as `unsafe extern "C"`Justin Moore
2022-01-29On second thought, don't generate virtual destructorsDr. Chat
2022-01-29Mark all vtable functions as `pub`Dr. Chat
2022-01-29Account for virtual destructorsDr. Chat
2022-01-29Pass the vtable's base class as the first parameterDr. Chat
2022-01-29Extremely basic Vtable generationDr. Chat
2021-12-29Change into PathBufMikuroXina
2021-12-29Derive some traitsMikuroXina
2021-12-29More detailed errorMikuroXina
2021-12-29Remove deprecation and ReplaceMikuroXina
2021-12-29Add non_exhaustiveMikuroXina
2021-12-29Remove 'error: ' partMikuroXina
2021-12-29Merge into new oneMikuroXina
2021-12-29Replace generate with gen in testMikuroXina
2021-12-29Impl Error trait for BindgenErrorMikuroXina
2021-12-29Add BindgenErrorMikuroXina
2021-12-29codegen: Don't automatically derive Debug and Copy for non-rust enums.Emilio Cobos Álvarez
Fixes #2143
2021-12-12Handle difference between clang and rust targets on RISC-V.Triss Healy
2021-12-07Add argsMikuroXina
2021-12-07Fix warnings on testsMikuroXina
2021-12-07Add note about RVO in cpp.mdAapo Alasuutari
`bindgen`'s inability to currently support RVO should be noted in C++ bindings generation document.
2021-12-07Remove fields never readMikuroXina
2021-11-26Bump version.v0.59.2Emilio Cobos Álvarez
* cexpr+env_logger bump. * Various fixes for C++ crashes / hangs. * Enums now respect annotations and derives properly in more cases. * Some more APIs (blocklist-file, etc). * 'static lifetime is elided when appropriate.
2021-11-26Add --blocklist-file option (#2097)David Drysdale
Update Item to hold a `clang::SourceLocation` and use this to allow blocklisting based on filename. The existing code has a special case that always maps <stdint.h> integer types to corresponding Rust integer types, even if the C types are blocklisted. To match this special case behaviour, also treat these C <stdint.h> types as being eligible for derived Copy/Clone/Debug traits. Fixes #2096
2021-11-26Drop 'static for pub const strings for rustc>1.17Alberto Planas
Constant and static declaration have a 'static live time by default, that is already elided since 1.17. Clippy complains on this kind of strings that are present in the generated code. This patch remove the 'static live time for those strings when rustc > 1.17 via a new added RustFeature. Fix #1612 Signed-off-by: Alberto Planas <aplanas@suse.com>
2021-11-26Typo fix: "in side" -> "inside"follower
2021-11-26allow custom derives on enumsEric Seppanen
Custom derives are just as useful on enums as they are on structs; not supporting this was an oversight. Adds a test that will fail to compile if the custom derive doesn't work on enums. This test fails without the codegen fix.
2021-10-30context: Escape the try keyword properlyFionera
2021-10-27Avoid case of a self-referential type alias.Adrian Taylor
This previously produced a type alias which referred to itself, which was clearly wrong and resulted in downstream code recursing infinitely. The problem case (per bug #2102) is: template <typename> class B{}; template <typename c> class C { public: using U = B<c>; }; class A : C<A> { U u; }; As far as I can tell, we parse clang's definition of B<A>; that leads us to parse A; to find it has a field U which turns out to be of type B<A>. And so we hit the line in item.rs which says: debug!("Avoiding recursion parsing type: {:?}", ty); and bail out, returning the original item ID: hence, a self- referential typedef is created. The 'fix' in this PR creates an opaque type in this case instead, to avoid later infinite loops. It would be preferable to avoid this situation in the first place, but presumably that would require us to split the parsing phase into two: 1) types 2) fields within those types. Fixes #2102.
2021-10-27Don't generate 2^64 byte padding fields on unionsTheodore Dubois
The --explicit-padding flag would make bindgen try to add tail padding to rust unions, by adding up the size of all the union fields and subtracting from the size of the union as given by clang. The total size of a union's fields is always larger than the union, so the subtraction underflowed and bindgen produced padding fields larger than addressable RAM.
2021-10-27Avoid transmuteMikuroXina
2021-10-27Fix separator and treating expressionMikuroXina
2021-10-27Fix repetetionMikuroXina
2021-10-27Fix log argsMikuroさいな
2021-10-27Remove trailing semisMikuroさいな
2021-10-27Shorten patternsMikuroXina