This repository was archived by the owner on Apr 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 5 files changed +16
-9
lines changed
crates/compiler-builtins-smoke-test Expand file tree Collapse file tree 5 files changed +16
-9
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,10 @@ default = []
1818
1919# This tells the compiler to assume that a Nightly toolchain is being used and
2020# that it should activate any useful Nightly things accordingly.
21- unstable = []
21+ unstable = [" unstable-intrinsics" ]
22+
23+ # Enable calls to functions in `core::intrinsics`
24+ unstable-intrinsics = []
2225
2326# Used to prevent using any intrinsics or arch-specific code.
2427force-soft-floats = []
Original file line number Diff line number Diff line change 4949if [ " ${BUILD_ONLY:- } " = " 1" ]; then
5050 cmd=" cargo build --target $target --package libm"
5151 $cmd
52- $cmd --features ' unstable'
52+ $cmd --features " unstable-intrinsics "
5353
5454 echo " can't run tests on $target "
5555else
6060 $cmd --release
6161
6262 # unstable with a feature
63- $cmd --features ' unstable'
64- $cmd --release --features ' unstable'
63+ $cmd --features " unstable-intrinsics "
64+ $cmd --release --features " unstable-intrinsics "
6565fi
Original file line number Diff line number Diff line change @@ -10,6 +10,8 @@ test = false
1010bench = false
1111
1212[features ]
13+ # Duplicated from libm's Cargo.toml
1314unstable = []
15+ unstable-intrinsics = []
1416checked = []
1517force-soft-floats = []
Original file line number Diff line number Diff line change 11//! libm in pure Rust
22#![ no_std]
3- #![ cfg_attr( feature = "unstable" , allow( internal_features) ) ]
4- #![ cfg_attr( feature = "unstable" , feature( core_intrinsics) ) ]
3+ #![ cfg_attr( feature = "unstable-intrinsics " , allow( internal_features) ) ]
4+ #![ cfg_attr( feature = "unstable-intrinsics " , feature( core_intrinsics) ) ]
55#![ allow( clippy:: assign_op_pattern) ]
66#![ allow( clippy:: deprecated_cfg_attr) ]
77#![ allow( clippy:: eq_op) ]
Original file line number Diff line number Diff line change @@ -60,14 +60,14 @@ macro_rules! i {
6060// the time of this writing this is only used in a few places, and once
6161// rust-lang/rust#72751 is fixed then this macro will no longer be necessary and
6262// the native `/` operator can be used and panics won't be codegen'd.
63- #[ cfg( any( debug_assertions, not( feature = "unstable" ) ) ) ]
63+ #[ cfg( any( debug_assertions, not( feature = "unstable-intrinsics " ) ) ) ]
6464macro_rules! div {
6565 ( $a: expr, $b: expr) => {
6666 $a / $b
6767 } ;
6868}
6969
70- #[ cfg( all( not( debug_assertions) , feature = "unstable" ) ) ]
70+ #[ cfg( all( not( debug_assertions) , feature = "unstable-intrinsics " ) ) ]
7171macro_rules! div {
7272 ( $a: expr, $b: expr) => {
7373 unsafe { core:: intrinsics:: unchecked_div( $a, $b) }
@@ -76,7 +76,9 @@ macro_rules! div {
7676
7777macro_rules! llvm_intrinsically_optimized {
7878 ( #[ cfg( $( $clause: tt) * ) ] $e: expr) => {
79- #[ cfg( all( feature = "unstable" , not( feature = "force-soft-floats" ) , $( $clause) * ) ) ]
79+ #[ cfg( all(
80+ feature = "unstable-intrinsics" , not( feature = "force-soft-floats" ) , $( $clause) *
81+ ) ) ]
8082 {
8183 if true { // thwart the dead code lint
8284 $e
You can’t perform that action at this time.
0 commit comments