Skip to content

Commit 4b5cd54

Browse files
committed
use black_box instead of local optimziation barriers in const tests where possible
1 parent caeb554 commit 4b5cd54

File tree

2 files changed

+12
-19
lines changed

2 files changed

+12
-19
lines changed

src/test/ui/consts/cast-discriminant-zst-enum.rs

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// run-pass
22
// Test a ZST enum whose dicriminant is ~0i128. This caused an ICE when casting to a i32.
3+
use std::hint::black_box;
34

45
#[derive(Copy, Clone)]
56
enum Nums {
@@ -12,9 +13,6 @@ const NEG_ONE_I32: i32 = Nums::NegOne as i32;
1213
const NEG_ONE_I64: i64 = Nums::NegOne as i64;
1314
const NEG_ONE_I128: i128 = Nums::NegOne as i128;
1415

15-
#[inline(never)]
16-
fn identity<T>(t: T) -> T { t }
17-
1816
fn test_as_arg(n: Nums) {
1917
assert_eq!(-1i8, n as i8);
2018
assert_eq!(-1i16, n as i16);
@@ -31,11 +29,11 @@ fn main() {
3129
assert_eq!(-1i64, kind as i64);
3230
assert_eq!(-1i128, kind as i128);
3331

34-
assert_eq!(-1i8, identity(kind) as i8);
35-
assert_eq!(-1i16, identity(kind) as i16);
36-
assert_eq!(-1i32, identity(kind) as i32);
37-
assert_eq!(-1i64, identity(kind) as i64);
38-
assert_eq!(-1i128, identity(kind) as i128);
32+
assert_eq!(-1i8, black_box(kind) as i8);
33+
assert_eq!(-1i16, black_box(kind) as i16);
34+
assert_eq!(-1i32, black_box(kind) as i32);
35+
assert_eq!(-1i64, black_box(kind) as i64);
36+
assert_eq!(-1i128, black_box(kind) as i128);
3937

4038
test_as_arg(Nums::NegOne);
4139

src/test/ui/consts/const_discriminant.rs

+6-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
// run-pass
2-
#![feature(const_discriminant)]
2+
#![feature(const_discriminant, test)]
33
#![allow(dead_code)]
44

55
use std::mem::{discriminant, Discriminant};
6-
7-
// `discriminant(const_expr)` may get const-propagated.
8-
// As we want to check that const-eval is equal to ordinary exection,
9-
// we wrap `const_expr` with a function which is not const to prevent this.
10-
#[inline(never)]
11-
fn identity<T>(x: T) -> T { x }
6+
use std::hint::black_box;
127

138
enum Test {
149
A(u8),
@@ -31,10 +26,10 @@ const TEST_V: Discriminant<SingleVariant> = discriminant(&SingleVariant::V);
3126

3227
fn main() {
3328
assert_eq!(TEST_A, TEST_A_OTHER);
34-
assert_eq!(TEST_A, discriminant(identity(&Test::A(17))));
35-
assert_eq!(TEST_B, discriminant(identity(&Test::B)));
29+
assert_eq!(TEST_A, discriminant(black_box(&Test::A(17))));
30+
assert_eq!(TEST_B, discriminant(black_box(&Test::B)));
3631
assert_ne!(TEST_A, TEST_B);
37-
assert_ne!(TEST_B, discriminant(identity(&Test::C { a: 42, b: 7 })));
32+
assert_ne!(TEST_B, discriminant(black_box(&Test::C { a: 42, b: 7 })));
3833

39-
assert_eq!(TEST_V, discriminant(identity(&SingleVariant::V)));
34+
assert_eq!(TEST_V, discriminant(black_box(&SingleVariant::V)));
4035
}

0 commit comments

Comments
 (0)