]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/retain-never-const.rs
Rollup merge of #67164 - matthewjasper:never-remove-const, r=oli-obk
[rust.git] / src / test / mir-opt / retain-never-const.rs
1 // Regression test for #66975 - ensure that we don't keep unevaluated
2 // `!`-typed constants until codegen.
3
4 // Force generation of optimized mir for functions that do not reach codegen.
5 // compile-flags: --emit mir,link
6
7 #![feature(const_panic)]
8
9 struct PrintName<T>(T);
10
11 impl<T> PrintName<T> {
12     const VOID: ! = panic!();
13 }
14
15 fn no_codegen<T>() {
16     let _ = PrintName::<T>::VOID;
17 }
18
19 fn main() {}
20
21 // END RUST SOURCE
22 // START rustc.no_codegen.PreCodegen.after.mir
23 // bb0: {
24 //     StorageLive(_1);
25 //     _1 = const PrintName::<T>::VOID;
26 //     unreachable;
27 // }
28 // END rustc.no_codegen.PreCodegen.after.mir