diff options
| author | bjorn3 <bjorn3@users.noreply.github.com> | 2020-11-06 19:49:33 +0100 |
|---|---|---|
| committer | bjorn3 <bjorn3@users.noreply.github.com> | 2020-11-06 19:49:33 +0100 |
| commit | 509054d4dea5a8ea1cfa382db5f7c01b620fa8d2 (patch) | |
| tree | 18424417e47367a6c80c82e5d6e0d3bdf13dc5d4 /src | |
| parent | 9b66df42496201e6512f53cde83ba444a5990567 (diff) | |
| download | rust-509054d4dea5a8ea1cfa382db5f7c01b620fa8d2.tar.gz rust-509054d4dea5a8ea1cfa382db5f7c01b620fa8d2.zip | |
Fix ICE
Diffstat (limited to 'src')
| -rw-r--r-- | src/discriminant.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/discriminant.rs b/src/discriminant.rs index 1e8e86add1a..e038df2272f 100644 --- a/src/discriminant.rs +++ b/src/discriminant.rs @@ -26,12 +26,15 @@ pub(crate) fn codegen_set_discriminant<'tcx>( variants: _, } => { let ptr = place.place_field(fx, mir::Field::new(tag_field)); - let to = layout - .ty - .discriminant_for_variant(fx.tcx, variant_index) - .unwrap() - .val - .into(); + let to = ty::ScalarInt::try_from_uint( + layout + .ty + .discriminant_for_variant(fx.tcx, variant_index) + .unwrap() + .val, + ptr.layout().size, + ) + .unwrap(); let discr = CValue::const_val(fx, ptr.layout(), to); ptr.write_cvalue(fx, discr); } |
