about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorGary Guo <gary@garyguo.net>2021-06-06 02:28:05 +0100
committerGary Guo <gary@garyguo.net>2021-07-02 22:52:37 +0100
commitec7292ad3c35b7e3656f90988d9369fd6c55d1c9 (patch)
treed5130abafc16b366adc1908ff279395836fd327d /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parent37647d1733c368dfb4a81f368cefa09adf6bf20d (diff)
downloadrust-ec7292ad3c35b7e3656f90988d9369fd6c55d1c9.tar.gz
rust-ec7292ad3c35b7e3656f90988d9369fd6c55d1c9.zip
core: add unstable `no_fp_fmt_parse` to disable float fmt/parse code
In some projects (e.g. kernel), floating point is forbidden. They can disable
hardware floating point support and use `+soft-float` to avoid fp instructions
from being generated, but as libcore contains the formatting code for `f32`
and `f64`, some fp intrinsics are depended. One could define stubs for these
intrinsics that just panic [1], but it means that if any formatting functions
are accidentally used, mistake can only be caught during the runtime rather
than during compile-time or link-time, and they consume a lot of space without
LTO.

This patch provides an unstable cfg `no_fp_fmt_parse` to disable these.
A panicking stub is still provided for the `Debug` implementation (unfortunately)
because there are some SIMD types that use `#[derive(Debug)]`.

[1]: https://lkml.org/lkml/2021/4/14/1028
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions