summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-21propose adding host v. target architecture mismatch to problem listbunnie
I spent an afternoon scratching my head on this one before I ran into https://github.com/rust-lang/rust-bindgen/issues/1728. Since the error message welcomes PRs...
2020-02-19Update deprecated methods in builder exampleJonas Platte
2020-02-19Fix written-out form of SFINAEJonas Platte
2020-02-17var: Constant arrays of const elements should not generate `static mut`s.Emilio Cobos Álvarez
Fixes #1727
2020-02-11Add a late changelog note about the `"runtime"` feature.Emilio Cobos Álvarez
In hindsight I should've done it when writing it. Fixes #1712
2020-02-05fix documentation typokatie.martin
`book/src/cpp.md` can have little a typo fix, as a treat.
2020-02-03Release 0.53.1.v0.53.1Emilio Cobos Álvarez
2020-02-03options: Add an opt-in to recover the size_t behavior removed in 5d38f2ac.Emilio Cobos Álvarez
2020-02-02Release v0.53.0v0.53.0Emilio Cobos Álvarez
2020-02-02ir: codegen: Handle too large bitfield units.Emilio Cobos Álvarez
By not generating various code for it. In the future, we could improve on this by splitting contiguous bitfield units, if needed, so that we can implement them without dealing with rust array derive limits. Fixes #1718
2020-02-02ir: Deindent some code trivially.Emilio Cobos Álvarez
2020-01-29ir: Account for packedness when computing bitfield sizes.Emilio Cobos Álvarez
Fixes #1716
2020-01-22Add comments about regex usage in {white|black}list functionsAurora
2020-01-13Add ,ignore to avoid that CI compiles these examples.Orne Brocaar
2020-01-13Add how to deal with bindgen padding fields.Orne Brocaar
2020-01-13codegen: Max guaranteed alignment is 8 (with u64), not target pointer width.Emilio Cobos Álvarez
2020-01-13Remove padding for over-aligned structs when we support repr(align).Emilio Cobos Álvarez
Before repr(align), we could only safely guarantee up to 8-bytes of alignment (I think the pointer-width check is a more conservative way of doing that, in practice, because I _think_ u64 is 8-byte aligned even for smaller targets). So when we may generate a potentially-under-aligned struct, we always used to pad it so as to guarantee that at least the size (and thus reads from rust for C-allocated structs) was fine. But if we support repr(align), then the above is always unneeded.
2020-01-05Added non-keyword support to objective-c methods.Sebastian Imlay
2020-01-05An initial implementation of objective-c generics for #1259 (#1702)simlay
2019-12-20Update latest stable rust to 1.40 and give non_exhaustive featureJohn Brandt
2019-12-16Remove deprecated Error::descriptionKornel
2019-12-13Remove size_t to usize conversion ruleConor McAvity
2019-12-11codegen: Minor cleanup after #1691.Emilio Cobos Álvarez
2019-12-11tests: Minor rustc warning fixes.Emilio Cobos Álvarez
2019-12-11Add support for wasm_import_moduleJasper-Bekkers
2019-11-28Fix warning on rustdocJake Merdich
Rustdoc was treating doc comments containing `#[non_exhaustive]` as links and warning, so mark that as code to avoid the warning.
2019-11-25Move warnings check on the CILuca Barbato
Always building with `deny(warnings)` leads to messups such as https://docs.rs/crate/bindgen/0.52.0/builds/199624
2019-11-19v0.52.0v0.52.0Emilio Cobos Álvarez
2019-11-14Make rustfmt happyDavid Vo
2019-11-14Add newtype enum styleDavid Vo
This adds an enum style similar to the existing bitfield style, without the bitwise operator impls. Closes: #1669
2019-11-14Warn rather than panic on unknown namespace prefixJon Gjengset
When a #defined token was used before a namespace, like so (#1676): #define nssv_inline_ns inline nssv_inline_ns namespace literals {} bindgen would crash when encountering the unknown token preceding the namespace token. This is because we don't get to see "past" the ifdef to the underlying token. The true fix to this is to find a way to extract ifdef info through clang, but for the time being we simply change the panic into a warning when such a token is encountered, and then proceed as if it were empty. Fixes #1676.
2019-11-09Update tests from transmute to 'as' castingElichai Turkel
2019-11-09Replace unsafe ref->ptr transmute with 'as' castingElichai Turkel
2019-11-08Option to use #[repr(transparent)] structs instead of type aliasing.Joseph Rafael Ferrer
2019-11-08Update and add tests for MaybeUninitElichai Turkel
2019-11-08Add support for MaybeUninitElichai Turkel
2019-11-08Update cexpr dependencyIlia Kravets
2019-11-03Do not generate implementation for clone for FAMDavid Frey
Flexible array members are represented in the generated binding by a struct __IncompleteArrayField<T>. Since such members do not contain any information about how big they are, it is impossible to automatically clone or copy them, either in C or rust. Fixes #1431.
2019-10-28Move rust feature docs into a more useful place.Emilio Cobos Álvarez
2019-10-27Turn off regex default features.Danny Bautista
2019-10-26[book] Update most recent version of bindgenRobbie Harwood
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
2019-10-22Add `disable_nested_struct_naming` option (#1610)oblique
The following structs have different names for C and C++. In case of C they are visible as `foo` and `bar`. In case of C++ they are visible as `foo` and `foo::bar`. By default bindgen follows C++ naming to avoid generating duplicate names. With this option the following structs will be named as `foo` and `bar` instead of `foo` and `foo_bar`. ``` struct foo { struct bar { } b; }; ``` In case of an unnamed definition we build the canonical name from the inner most named definition. For example the following will generate `baz__bindgen_ty_1`: ``` struct foo { struct bar { struct baz { struct { } u; } z; } b; }; ``` This option should be used only for C headers. It is needed in some rare situations where user used another code generator that already mangled nested definitions. A real life example is [asn1c] with `-fcompound-names` option. [asn1c]: https://github.com/vlm/asn1c
2019-10-22codegen: Handle opaque aliases to enums correctly.Emilio Cobos Álvarez
Opaque types don't use the path to their aliased type but an opaque type like an array or primitive with the right alignment. Fixes #1599.
2019-10-21Test the runtime feature and the non-static linking.Emilio Cobos Álvarez
We can't test the "static" code-path, since there are no prebuilt binaries in releases.llvm.org.
2019-10-21Cargo fmt.Emilio Cobos Álvarez
2019-10-21Allow static and dynamic linkingJeremy Fitzhardinge
Currently bindgen always uses clang-sys with the "runtime" feature - that is, load libclang at runtime with dlopen (or similar) at runtime. This PR keeps this default, but also - adds "static" to statically link libclang - without either "runtime" or "static", link with the shared library Many distributions don't ship with a static libclang, but linking with the dynamic library will use normal ld.so mechanisms to define where the .so file should be found. (Ditto for the Mac and Windows equivalents.)
2019-10-14Rustfmt to account for rebase.Emilio Cobos Álvarez
2019-10-14Fix bitfield-linux-32.hpp to not hit #1538.Emilio Cobos Álvarez
The test was failing.
2019-10-14bindgen-integration: Reformat crate too.Emilio Cobos Álvarez
Cleanup a bit the reformatted bits while at it.
2019-10-14tests: Remove support for test directive that is no longer used.Emilio Cobos Álvarez
ae0fdf7a5519a175d887389c80399234637bdc29 changed the setup for the only test that actually used this.