diff options
| author | Aaron Hill <aa1ronham@gmail.com> | 2019-11-06 14:13:57 -0500 |
|---|---|---|
| committer | Aaron Hill <aa1ronham@gmail.com> | 2019-11-11 15:14:38 -0500 |
| commit | c0b972abfa4cd31d2b2d598824f578359350430f (patch) | |
| tree | 7423dbc962253e31b4d9e089b95c88af53f507ec /src | |
| parent | 68d9853985cf3a7eb00b6066473d6a27322ec748 (diff) | |
| download | rust-c0b972abfa4cd31d2b2d598824f578359350430f.tar.gz rust-c0b972abfa4cd31d2b2d598824f578359350430f.zip | |
Return Ok(false) instead of throwing when handling a diverging intrinsic
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/interpret/intrinsics.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/librustc_mir/interpret/intrinsics.rs b/src/librustc_mir/interpret/intrinsics.rs index 18d8d8c6158..66b6d4ac12c 100644 --- a/src/librustc_mir/interpret/intrinsics.rs +++ b/src/librustc_mir/interpret/intrinsics.rs @@ -95,11 +95,10 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> { ) -> InterpResult<'tcx, bool> { let substs = instance.substs; - // The intrinsic itself cannot diverge, so if we got here without a return - // place... (can happen e.g., for transmute returning `!`) + // We currently do not handle any diverging intrinsics. let dest = match dest { Some(dest) => dest, - None => throw_ub!(Unreachable) + None => return Ok(false) }; let intrinsic_name = &*self.tcx.item_name(instance.def_id()).as_str(); |
