Skip to content

Commit

Permalink
Optimized condition order, added regression test
Browse files Browse the repository at this point in the history
  • Loading branch information
tuxmark5 committed Aug 24, 2020
1 parent 7ed0127 commit b1cefe2
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/ir/function.rs
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ impl FunctionSig {
ty.ret_type().ok_or(ParseError::Continue)?
};

let ret = if ctx.is_target_wasm32() && is_constructor {
let ret = if is_constructor && ctx.is_target_wasm32() {
// Constructors in Clang wasm32 target return a pointer to the object
// being constructed.
let void = Item::builtin_type(TypeKind::Void, false, ctx);
Expand Down
40 changes: 40 additions & 0 deletions tests/expectations/tests/wasm-constructor-returns.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#![allow(
dead_code,
non_snake_case,
non_camel_case_types,
non_upper_case_globals
)]

#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct Foo {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_Foo() {
assert_eq!(
::std::mem::size_of::<Foo>(),
1usize,
concat!("Size of: ", stringify!(Foo))
);
assert_eq!(
::std::mem::align_of::<Foo>(),
1usize,
concat!("Alignment of ", stringify!(Foo))
);
}
extern "C" {
#[link_name = "\u{1}_ZN3FooC1Ei"]
pub fn Foo_Foo(
this: *mut Foo,
var: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_void;
}
impl Foo {
#[inline]
pub unsafe fn new(var: ::std::os::raw::c_int) -> Self {
let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
Foo_Foo(__bindgen_tmp.as_mut_ptr(), var);
__bindgen_tmp.assume_init()
}
}
7 changes: 7 additions & 0 deletions tests/headers/wasm-constructor-returns.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// bindgen-flags: --generate constructors,types -- -fvisibility=default --target=wasm32-unknown-emscripten

class Foo {
public:
Foo(int var);
};

0 comments on commit b1cefe2

Please sign in to comment.