about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJed Davis <jld@panix.com>2012-12-30 20:51:53 -0800
committerJed Davis <jld@panix.com>2013-01-11 23:42:51 -0800
commit349fa1e550905577fd9545aada328fb0806cf641 (patch)
treefccb1183b6c5bca6d8eadcf79e52d8416a0700a2
parentabae61257c4d866bb321bfb80ad16b7531736f7e (diff)
downloadrust-349fa1e550905577fd9545aada328fb0806cf641.tar.gz
rust-349fa1e550905577fd9545aada328fb0806cf641.zip
Omit needless zeroes for C-like variants of non-C-like enums
-rw-r--r--src/librustc/middle/trans/consts.rs13
1 files changed, 1 insertions, 12 deletions
diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs
index 23b4bb32eea..74aaec0d7e7 100644
--- a/src/librustc/middle/trans/consts.rs
+++ b/src/librustc/middle/trans/consts.rs
@@ -414,21 +414,10 @@ fn const_expr(cx: @crate_ctxt, e: @ast::expr) -> ValueRef {
                     // variant or we wouldn't have gotten here -- the constant
                     // checker forbids paths that don't map to C-like enum
                     // variants.
-                    let ety = ty::expr_ty(cx.tcx, e);
-                    let llty = type_of::type_of(cx, ety);
                     let lldiscrim = base::get_discrim_val(cx, e.span,
                                                           enum_did,
                                                           variant_did);
-
-                    let fields = if ty::enum_is_univariant(cx.tcx, enum_did) {
-                        ~[lldiscrim]
-                    } else {
-                        let llstructtys =
-                            lib::llvm::struct_element_types(llty);
-                        ~[lldiscrim, C_null(llstructtys[1])]
-                    };
-
-                    C_named_struct(llty, fields)
+                    C_struct(~[lldiscrim])
                 }
                 Some(ast::def_struct(_)) => {
                     let ety = ty::expr_ty(cx.tcx, e);