summaryrefslogtreecommitdiff
path: root/libbindgen/src/codegen/mod.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2016-12-22 12:43:29 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2016-12-23 11:40:38 +0100
commitab1d2122b29054e8682c21255fe25a2948b1ac2c (patch)
treeea0f74e4d3b0a60c4f2324a0efc67b294dc963af /libbindgen/src/codegen/mod.rs
parent44690e3a5c73f9df364d3548bf367a4198953eac (diff)
ir: Be more resistent to failure when parsing enums.
Diffstat (limited to 'libbindgen/src/codegen/mod.rs')
-rw-r--r--libbindgen/src/codegen/mod.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/libbindgen/src/codegen/mod.rs b/libbindgen/src/codegen/mod.rs
index e9141b9c..6213a068 100644
--- a/libbindgen/src/codegen/mod.rs
+++ b/libbindgen/src/codegen/mod.rs
@@ -1562,7 +1562,11 @@ impl CodeGenerator for Enum {
};
let signed = repr.is_signed();
- let size = layout.map(|l| l.size).unwrap_or(0);
+ let size = layout
+ .map(|l| l.size)
+ .or_else(|| repr.known_size())
+ .unwrap_or(0);
+
let repr_name = match (signed, size) {
(true, 1) => "i8",
(false, 1) => "u8",