diff options
-rw-r--r-- | bindgen-tests/tests/headers/wrap-static-fns.h | 1 | ||||
-rw-r--r-- | bindgen/codegen/mod.rs | 16 |
2 files changed, 9 insertions, 8 deletions
diff --git a/bindgen-tests/tests/headers/wrap-static-fns.h b/bindgen-tests/tests/headers/wrap-static-fns.h index 03892315..faa7b7f1 100644 --- a/bindgen-tests/tests/headers/wrap-static-fns.h +++ b/bindgen-tests/tests/headers/wrap-static-fns.h @@ -3,6 +3,7 @@ static inline int foo() { return 11; } +static int bar(); static int bar() { return 1; } diff --git a/bindgen/codegen/mod.rs b/bindgen/codegen/mod.rs index b6fb70eb..b5a7b27c 100644 --- a/bindgen/codegen/mod.rs +++ b/bindgen/codegen/mod.rs @@ -4029,14 +4029,10 @@ impl CodeGenerator for Function { let is_internal = matches!(self.linkage(), Linkage::Internal); - if is_internal { - if ctx.options().wrap_static_fns { - result.items_to_serialize.push(item.id()); - } else { - // We can't do anything with Internal functions if we are not wrapping them so just - // avoid generating anything for them. - return None; - } + if is_internal && !ctx.options().wrap_static_fns { + // We can't do anything with Internal functions if we are not wrapping them so just + // avoid generating anything for them. + return None; } // Pure virtual methods have no actual symbol, so we can't generate @@ -4139,6 +4135,10 @@ impl CodeGenerator for Function { abi => abi, }; + if is_internal && ctx.options().wrap_static_fns { + result.items_to_serialize.push(item.id()); + } + // Handle overloaded functions by giving each overload its own unique // suffix. let times_seen = result.overload_number(&canonical_name); |