Age | Commit message (Collapse) | Author |
|
|
|
* print `PanicInfo` using hook
* update changelog
|
|
* tests: Avoid using globs as regexes
* Sanitize regex set input to properly handle alternation
* Add test case for alternates/anchors interaction
* emit warning if wildcard pattern is used
* update changelog and bump versions
Co-authored-by: Darren Kulp <darren@kulp.ch>
Co-authored-by: Christian Poveda <christian.poveda@ferrous-systems.com>
|
|
Document visibility annotation
|
|
|
|
|
|
Travis-CI was fully removed as of faf8b3edbaeb591315fc6f370c1228b8caf9860f.
The only badge now [mentioned in the Cargo book][1] is `maintenance`. The
`travis-ci` badge reference was [removed from Cargo two years ago][2]. The
Cargo book advises putting badges in README.md instead.
[1]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-badges-section
[2]: https://github.com/rust-lang/cargo/commit/60779a006f98fba1680182c174134363d08e0a9b
|
|
In Clang 16, anonymous items may return names like
`(anonymous union at ..)` rather than empty names.
The right way to detect them is using clang_Cursor_isAnonymous.
Fixes #2312
Closes #2316
Co-Authored-by: Patrick Walton <pcwalton@fb.com>
|
|
One of the advantages of doing this is that `ParseCallbacks` no longer
needs to implement `UnwindSafe` which means that users can rely on
`RefCell` and `Cell` to extract information from the callbacks.
Users relying on `catch_unwind` can still achieve similar behavior using
`std::thread::spawn`.
Fixes #2147.
|
|
Add FAQ about custom targets
|
|
|
|
Fix clippy lints
|
|
|
|
|
|
|
|
The allowed casts are because c_longlong etc aren't guaranteed to map to
i64 / etc. I believe c_double maps to f64 in all platforms tho.
|
|
|
|
|
|
|
|
This adds a new special case for constants like:
```c
extern const char some_static_string[];
```
so `bindgen` emits a `static` instead of a `static mut` for them.
|
|
Implement `Clone` for `Builder`
|
|
Make postprocessing more robust
|
|
This is done by moving all the remaining `Builder` state into
`BindgenOptions` so any internal logic that affects `Builder` state only
runs once the builder is consumed by `Builder::generate`:
- move `input_headers` to `BindgenOptions`.
- move `input_header_contents` to `BindgenOptions`.
- derive `Clone` for `Builder`.
|
|
|
|
This is done by merging extern blocks and sorting items in every module
instead of just in the root module.
The tests were changed to use `cxx` namespaces so they effectively check
that items are manipulated correctly in every single module.
|
|
Generated name override
|
|
|
|
Fixes #2293
|
|
Bindgen as a workspace
|
|
remove `clap` dependency :tada:
update the book installation instructions
|
|
Address clippy lints
|
|
|
|
Make `BindgenOptions` clonable
|
|
|
|
|
|
Don't traverse through special-cased <stdint.h> types.
|
|
|
|
Move codegen postprocessing to its own module
|
|
|
|
|
|
|
|
|
|
sovereign-module-of-syn
|
|
|
|
|
|
|
|
Remove file added by mistake
|
|
|
|
Map size_t to usize by default and check compatibility [Rebased]
|
|
This addresses the underlying issue identified in #1671, that size_t
(integer that can hold any object size) isn't guaranteed to match usize,
which is defined more like uintptr_t (integer that can hold any
pointer). However, on almost all platforms, this is true, and in fact
Rust already uses usize extensively in contexts where size_t would be
more appropriate, such as slice indexing. So, it's better for ergonomics
when interfacing with C code to map the C size_t type to usize. (See
also discussion in rust-lang/rust#65473 about how usize really should be
defined as size_t, not uintptr_t.)
The previous fix for #1671 removed the special case for size_t and
defaulted to binding it as a normal typedef. This change effectively
reverts that and goes back to mapping size_t to usize (and ssize_t to
isize), but also ensures that if size_t is emitted, the typedef'd type
of size_t in fact is compatible with usize (defined by checking that the
size and alignment match the target pointer width). For (hypothetical)
platforms where this is not true, or for compatibility with the default
behavior of bindgen between 0.53 and this commit, onwards, you can
disable this mapping with --no-size_t-is-usize.
|