summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-04-30Don't generate bindings for deleted member functions. (#2044)Martin Boehme
Closes #2044 Fixes #2043 See https://github.com/rust-lang/rust-bindgen/issues/2043 for details.
2021-04-30ir: Use early return in c_naming_prefix.Emilio Cobos Álvarez
2021-04-30Add a C naming option (#2045)Boris-Chengbiao Zhou
Closes #2045. Fixes #1252.
2021-04-27Translate types that were declared inside functions as opaque types.Patrick Walton
This fixes a panic with the following header: template<typename T> struct Foo {}; template<typename T> Foo<T> foo{}; void f() { struct Bar { Bar() {} }; foo<Bar>; } Because we don't parse the insides of function bodies, code like this could cause us to parse a type (here, `Bar`) that we didn't see in our initial pass, which can cause subtle problems. Closes #2036.
2021-04-26Print with_id in debug log from builtin_or_resolved_ty.Emilio Cobos Álvarez
This makes debugging #2039 a bit easier.
2021-04-24Support emitting Makefile-syntax depfiles like gcc/clang/rustc.Adam Perry
Needed to auto-bindgen with a ninja build without the build graph going stale.
2021-04-15Add env var EXTRA_CLANG_ARGS_<TARGET>Thomas Vermeilh
Closes #2009
2021-04-11Fix docstring comment for constantsNico Chatzi
2021-04-06Re-introduce whitelist_recursively (with deprecation notice)Emilio Cobos Álvarez
Seems like an oversight from #1990. Fixes #2022.
2021-04-03codegen: Deal with overloads in method code generation.Emilio Cobos Álvarez
Fixes #2019
2021-04-03codegen: Don't use a `sym` temporary in dynamic library code.Emilio Cobos Álvarez
Fixes #2014.
2021-04-03remove old commentDr. Chat
2021-04-03Deduplicate dyngen codeDr. Chat
2021-04-03Remove `DynamicItems::has_required`Dr. Chat
2021-04-03Add a flag to ensure all symbols are resolved when a library is loadedDr. Chat
2021-03-22Merge pull request #2007 from jethrogb/jb/issue-1454-altEmilio Cobos Álvarez
Add callback to check derives for blocklisted types
2021-03-22Add from_library for generated dynamic library structs (#2011)Wang, Chi
2021-03-22Add callback to check derives for blocklisted typesJethro Beekman
Fixes #1454 #2003
2021-03-22Use original name when checking allowlist for anonymous enum variantsJethro Beekman
2021-03-14Add option to translate enum integer types to native Rust integer typesJethro Beekman
Fixes #430
2021-03-11Revert "Add flag to ignore type blocklist when computing derive information"Emilio Cobos Álvarez
This reverts commit 7286c815f80b14c0ee77773387434da40f511b42, because it was not intended to be merged after all, see https://github.com/rust-lang/rust-bindgen/pull/2003#issuecomment-796160427.
2021-03-11Add flag to ignore type blocklist when computing derive informationJethro Beekman
Fixes #1454
2021-03-09Remove outdated commentsldm0
2021-02-18Rename whitelist -> allowlist and blacklist -> blocklistMarcel Hlopko
For the commandline arguments I added undocumented aliases to old flags, to stay backwards compatible.
2021-02-15Make clang version parsing logic more robustMarcel Hlopko
Previously the function assumed that the version number appeared in the third word. This PR adds a heuristic - take the first word that starts with a number. This way we can also parse: `debian clang version 11.0` that my clang reports.
2021-02-07codegen: Track union layout more accurately.Emilio Cobos Álvarez
Instead of always generating the _bindgen_union_align method (which shouldn't be needed at all for Rust structs, since the struct layout tracker already deals with adding repr(align) as necessary) make sure to visit all fields appropriately to generate the correct alignment.
2021-01-29Generate fields as non-pub if they would be access restricted in C++.Weston Carvalho
2021-01-10Use absolute paths for unsaved files passed to clang and prepend -include ↵Andrey Pushkar
directives to them. Fixes #1771 Closes #1857
2020-12-26Allow log stubs to be unused.Emilio Cobos Álvarez
2020-12-20comp: Fix bitfields to allow underaligned fields after them to take padding ↵Emilio Cobos Álvarez
space. Fixes #1947. There are two separate issues here: First, the change in comp.rs ensures that we don't round up the amount of storage to the alignment of the bitfield. That generates the "expected" output in #1947 (`__BindgenBitfieldUnit<[u8; 3], u16>`). But that's still not enough to fix that test-case because __BindgenBitfieldUnit would be aligned and have padding, and Rust won't put the extra field in the padding. In order to ensure the bitfield starts at the right alignment, but that Rust can put stuff in the extra field, we need to make a breaking change and split the generated fields in two: One preceding that guarantees alignment, and the actual storage, bit-aligned. This keeps the existing behavior while fixing that test-case.
2020-12-20context: Escape the dyn keyword properly.Emilio Cobos Álvarez
Fixes #1946
2020-12-19var: Avoid a bit of duplication with fit_macro_constants.Emilio Cobos Álvarez
2020-12-19Add option to fit macro consts into smaller typesAntoni Simka
Add a `--fit-macro-constant-types` option to make bindgen try to fit macro integer constants into types smaller than u32/i32. Useful especially when dealing with 8/16-bit architectures. Closes #1945
2020-12-15Remove unsued mutable field logic.Weston Carvalho
2020-12-02dyngen: Pass null-terminated byte strings to libloading.Emilio Cobos Álvarez
Fixes #1938.
2020-12-02cli: Expose module_raw_lines to the CLI.Emilio Cobos Álvarez
This makes command_line_args properly return them, instead of dropping them on the floor.
2020-11-28struct_layout: Fix field offset computation for packed(n) structs.Emilio Cobos Álvarez
This can cause unnecessary padding to be computed otherwise at the end of the struct. With repr(packed(n)), a field can have padding to adjacent fields as long as its alignment is less than n. So reuse the code we have to align to a field layout, aligning to the struct layout instead. Fixes #1934
2020-11-26lib: Use if let on recently-introduced code.Emilio Cobos Álvarez
2020-11-26lib: Improve c++ auto-detection.Emilio Cobos Álvarez
Fixes #1919, as otherwise we peek the wrong include paths unless you pass "-x c++" or such.
2020-11-26Add --no-default <regex> flagVarphone Wong
Sometimes, we need customize the implement of `Default` for certain types, In these cases, the `nodefault` annotation can be used to prevent bindgen to autoderive the `Default` traits for a type.
2020-11-25Remove cfg-if dependency.Emilio Cobos Álvarez
We use it so little that it's not worth it.
2020-11-25dyngen: Handle variadic functions.Emilio Cobos Álvarez
Right now trying to generate a dynamic library with variadic functions panics because we don't account for the extra `...` in the arguments. Keeping the current interface for variadic functions is tricky, as we cannot "wrap" a variadic function (VaList[1] is nightly-only). However, we don't need to. We're already exposing the libloading error, so exposing the function pointer field as public is just fine and allows consumers to call the variadic function. At that point the can_call() / CheckFoo libraries become pointless (you can just do library.function.is_ok() or such), so we can simplify the code as well removing those. [1]: https://doc.rust-lang.org/std/ffi/struct.VaList.html
2020-11-25codegen: Minor nits for dynamic function generation.Emilio Cobos Álvarez
2020-11-25Add dynamic loading supportJoe Ellis
Closes #1541. Closes #1846. Co-authored-by: Michael-F-Bryan <michaelfbryan@gmail.com>
2020-11-25Rustfmt to green up CI.Emilio Cobos Álvarez
2020-10-16codegen: Allow to not derive Debug on enums.Emilio Cobos Álvarez
Fixes #1899. This code predated all the derive machinery, and always hardcoded its derives. We could avoid hard-coding the other traits, but those seem usually-useful, so leave them there for backwards compat for now.
2020-09-16codegen: Use shorthand struct initialization when possible.Emilio Cobos Álvarez
2020-09-16codegen: Deindent a bit some recently-introduced objective-c code.Emilio Cobos Álvarez
2020-09-16Updates for CISebastian Imlay
2020-09-16Updates from PR commentsSebastian Imlay