Skip to content

Commit e8ffb42

Browse files
authored
Wrap unsafe function's bodies in unsafe blocks (#2266)
This guarantees that bindings generated by `bindgen` compile even if the `unsafe_op_in_unsafe_fn` lint is denied.
1 parent bae6170 commit e8ffb42

File tree

94 files changed

+401
-327
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+401
-327
lines changed

.github/workflows/bindgen.yml

+2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ jobs:
8989

9090
- name: Test expectations
9191
run: cd bindgen-tests/tests/expectations && cargo test
92+
env:
93+
RUSTFLAGS: "-D unsafe_op_in_unsafe_fn -D unused_unsafe"
9294

9395
test:
9496
runs-on: ${{matrix.os}}

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@
160160
* the `ParseCallbacks`trait does not require to implement `UnwindSafe`.
161161
* the `Builder::parse_callbacks` method no longer overwrites previously added
162162
callbacks and composes them in a last-to-first manner.
163+
* any generated rust code containing unsafe operations inside unsafe functions
164+
is wrapped in unsafe blocks now.
163165

164166
## Removed
165167

bindgen-tests/tests/expectations/tests/16-byte-alignment_1_0.rs

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/allowlist-file.rs

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/anon_struct_in_union_1_0.rs

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/anon_union_1_0.rs

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/attribute_warn_unused_result.rs

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/attribute_warn_unused_result_no_attribute_detection.rs

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/attribute_warn_unused_result_pre_1_27.rs

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/bindgen-union-inside-namespace.rs

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/bitfield-method-same-name.rs

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/class.rs

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/class_1_0.rs

+8-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/class_with_inner_struct_1_0.rs

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/class_with_typedef.rs

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/constructor-tp.rs

+5-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/constructors.rs

+15-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/constructors_1_33.rs

+15-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/deleted-function.rs

+7-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/expectations/tests/derive-bitfield-method-same-name.rs

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)