diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 0da01175c3..895422b09f 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -2426,7 +2426,10 @@ impl CodeGenerator for Enum { let repr = self.repr() .and_then(|repr| repr.try_to_rust_ty_or_opaque(ctx, &()).ok()) - .unwrap_or_else(|| helpers::ast_ty::raw_type(ctx, repr_name)); + .unwrap_or_else(|| { + let repr_name = ctx.rust_ident_raw(repr_name); + quote! { #repr_name } + }); let mut builder = EnumBuilder::new( &name, diff --git a/tests/expectations/tests/issue-1025-unknown-enum-repr.rs b/tests/expectations/tests/issue-1025-unknown-enum-repr.rs new file mode 100644 index 0000000000..265109106a --- /dev/null +++ b/tests/expectations/tests/issue-1025-unknown-enum-repr.rs @@ -0,0 +1,12 @@ +/* automatically generated by rust-bindgen */ + + +#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)] + + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct a { + pub _address: u8, +} +pub type a__bindgen_ty_1 = i32; diff --git a/tests/headers/issue-1025-unknown-enum-repr.hpp b/tests/headers/issue-1025-unknown-enum-repr.hpp new file mode 100644 index 0000000000..589b3c25f3 --- /dev/null +++ b/tests/headers/issue-1025-unknown-enum-repr.hpp @@ -0,0 +1,4 @@ + +template class a { + enum {}; +};