Skip to content

Commit 1d01b94

Browse files
committed
Allow blocklisting anonymous enums
1 parent 59a43e1 commit 1d01b94

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

bindgen-tests/tests/expectations/tests/blocklist-anon-enum.rs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// bindgen-flags: --blocklist-item 'SHOULD_BE_BLOCKED.*'
2+
3+
enum {
4+
SHOULD_BE_BLOCKED_1,
5+
SHOULD_BE_BLOCKED_2,
6+
SHOULD_BE_BLOCKED_3
7+
};

bindgen/codegen/mod.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3595,6 +3595,18 @@ impl CodeGenerator for Enum {
35953595
let layout = enum_ty.layout(ctx);
35963596
let variation = self.computed_enum_variation(ctx, item);
35973597

3598+
// blocklist anonymous enums based on variants.
3599+
if enum_ty.name().is_none() &&
3600+
self.is_matching_enum(
3601+
ctx,
3602+
&ctx.options().blocklisted_items,
3603+
item,
3604+
)
3605+
{
3606+
debug!("Blocklisting anonymous enum.");
3607+
return;
3608+
}
3609+
35983610
let repr_translated;
35993611
let repr = match self.repr().map(|repr| ctx.resolve_type(repr)) {
36003612
Some(repr)

bindgen/ir/enum_ty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ impl Enum {
150150
Ok(Enum::new(repr, variants))
151151
}
152152

153-
fn is_matching_enum(
153+
pub(crate) fn is_matching_enum(
154154
&self,
155155
ctx: &BindgenContext,
156156
enums: &RegexSet,

0 commit comments

Comments
 (0)