From 465e242752109591f6d8986c31761dda97ab43c7 Mon Sep 17 00:00:00 2001 From: Travis Finkenauer Date: Sun, 18 Jun 2017 20:08:59 -0700 Subject: [PATCH] Test const mod enum variants shadowing "Type" --- .../constify-module-enums-shadow-name.rs | 36 +++++++++++++++++++ .../constify-module-enums-shadow-name.h | 12 +++++++ 2 files changed, 48 insertions(+) create mode 100644 tests/expectations/tests/constify-module-enums-shadow-name.rs create mode 100644 tests/headers/constify-module-enums-shadow-name.h diff --git a/tests/expectations/tests/constify-module-enums-shadow-name.rs b/tests/expectations/tests/constify-module-enums-shadow-name.rs new file mode 100644 index 0000000000..9b5fd7b88c --- /dev/null +++ b/tests/expectations/tests/constify-module-enums-shadow-name.rs @@ -0,0 +1,36 @@ +/* automatically generated by rust-bindgen */ + + +#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)] + + +pub mod foo { + pub type Type = ::std::os::raw::c_uint; + pub const Type: Type = 0; + pub const Type_: Type = 1; + pub const Type1: Type = 2; + pub const Type__: Type = 3; +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct bar { + pub member: foo::Type, +} +#[test] +fn bindgen_test_layout_bar() { + assert_eq!(::std::mem::size_of::() , 4usize , concat ! ( + "Size of: " , stringify ! ( bar ) )); + assert_eq! (::std::mem::align_of::() , 4usize , concat ! ( + "Alignment of " , stringify ! ( bar ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const bar ) ) . member as * const _ as usize } + , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( bar ) , "::" , + stringify ! ( member ) )); +} +impl Clone for bar { + fn clone(&self) -> Self { *self } +} +impl Default for bar { + fn default() -> Self { unsafe { ::std::mem::zeroed() } } +} diff --git a/tests/headers/constify-module-enums-shadow-name.h b/tests/headers/constify-module-enums-shadow-name.h new file mode 100644 index 0000000000..38b261061b --- /dev/null +++ b/tests/headers/constify-module-enums-shadow-name.h @@ -0,0 +1,12 @@ +// bindgen-flags: --constified-enum-module foo + +enum foo { + Type, + Type_, + Type1, + Type__, +}; + +struct bar { + enum foo member; +};