Skip to content

Commit 349fa1e

Browse files
committed
Omit needless zeroes for C-like variants of non-C-like enums
1 parent abae612 commit 349fa1e

File tree

1 file changed

+1
-12
lines changed

1 file changed

+1
-12
lines changed

src/librustc/middle/trans/consts.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -414,21 +414,10 @@ fn const_expr(cx: @crate_ctxt, e: @ast::expr) -> ValueRef {
414414
// variant or we wouldn't have gotten here -- the constant
415415
// checker forbids paths that don't map to C-like enum
416416
// variants.
417-
let ety = ty::expr_ty(cx.tcx, e);
418-
let llty = type_of::type_of(cx, ety);
419417
let lldiscrim = base::get_discrim_val(cx, e.span,
420418
enum_did,
421419
variant_did);
422-
423-
let fields = if ty::enum_is_univariant(cx.tcx, enum_did) {
424-
~[lldiscrim]
425-
} else {
426-
let llstructtys =
427-
lib::llvm::struct_element_types(llty);
428-
~[lldiscrim, C_null(llstructtys[1])]
429-
};
430-
431-
C_named_struct(llty, fields)
420+
C_struct(~[lldiscrim])
432421
}
433422
Some(ast::def_struct(_)) => {
434423
let ety = ty::expr_ty(cx.tcx, e);

0 commit comments

Comments
 (0)