diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-05-06 16:58:50 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-06 16:58:50 +0200 |
| commit | 14d608f1d8a0b84da5f3bccecb3efb3d35f980dc (patch) | |
| tree | bb359957d2ab7197b0179d8f59310da9c1108520 /src/librustc_codegen_ssa | |
| parent | 339f574809bf8e4166b8de3cdbe7df181d37af3d (diff) | |
| parent | f63b8bffefb0f652dc164859f4c8a10329c9117a (diff) | |
| download | rust-14d608f1d8a0b84da5f3bccecb3efb3d35f980dc.tar.gz rust-14d608f1d8a0b84da5f3bccecb3efb3d35f980dc.zip | |
Rollup merge of #71269 - Mark-Simulacrum:sat-float-casts, r=nikic
Define UB in float-to-int casts to saturate This closes #10184 by defining the behavior there to saturate infinities and values exceeding the integral range (on the lower or upper end). `NaN` is sent to zero.
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/mir/rvalue.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/librustc_codegen_ssa/mir/rvalue.rs b/src/librustc_codegen_ssa/mir/rvalue.rs index 19a0138d9cb..bb532abd84b 100644 --- a/src/librustc_codegen_ssa/mir/rvalue.rs +++ b/src/librustc_codegen_ssa/mir/rvalue.rs @@ -768,7 +768,7 @@ fn cast_float_to_int<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>>( ) -> Bx::Value { let fptosui_result = if signed { bx.fptosi(x, int_ty) } else { bx.fptoui(x, int_ty) }; - if !bx.cx().sess().opts.debugging_opts.saturating_float_casts { + if let Some(false) = bx.cx().sess().opts.debugging_opts.saturating_float_casts { return fptosui_result; } |
