From 349fa1e550905577fd9545aada328fb0806cf641 Mon Sep 17 00:00:00 2001 From: Jed Davis Date: Sun, 30 Dec 2012 20:51:53 -0800 Subject: [PATCH] Omit needless zeroes for C-like variants of non-C-like enums --- src/librustc/middle/trans/consts.rs | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index 23b4bb32eeaa..74aaec0d7e73 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);