File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed
src/librustc/middle/trans Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -398,7 +398,6 @@ fn const_expr(cx: @crate_ctxt, e: @ast::expr) -> ValueRef {
398
398
// forbids paths that don't map to C-like enum variants.
399
399
let ety = ty:: expr_ty ( cx. tcx , e) ;
400
400
let llty = type_of:: type_of ( cx, ety) ;
401
- let llstructtys = lib:: llvm:: struct_element_types ( llty) ;
402
401
403
402
// Can't use `discrims` from the crate context here because
404
403
// those discriminants have an extra level of indirection,
@@ -422,8 +421,14 @@ fn const_expr(cx: @crate_ctxt, e: @ast::expr) -> ValueRef {
422
421
lldiscrim = found_lldiscrim;
423
422
}
424
423
}
424
+ let fields = if ty:: enum_is_univariant ( cx. tcx , enum_did) {
425
+ ~[ lldiscrim]
426
+ } else {
427
+ let llstructtys = lib:: llvm:: struct_element_types ( llty) ;
428
+ ~[ lldiscrim, C_null ( llstructtys[ 1 ] ) ]
429
+ } ;
425
430
426
- C_named_struct ( llty, ~ [ lldiscrim , C_null ( llstructtys [ 1 ] ) ] )
431
+ C_named_struct ( llty, fields )
427
432
}
428
433
Some ( ast:: def_struct( _) ) => {
429
434
let ety = ty:: expr_ty ( cx. tcx , e) ;
You can’t perform that action at this time.
0 commit comments