]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/retain-never-const.rs
Rollup merge of #67253 - elichai:2019-12-fmt, r=Dylan-DPC
[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 #![feature(never_type)]
9
10 struct PrintName<T>(T);
11
12 impl<T> PrintName<T> {
13     const VOID: ! = panic!();
14 }
15
16 fn no_codegen<T>() {
17     let _ = PrintName::<T>::VOID;
18 }
19
20 fn main() {}
21
22 // END RUST SOURCE
23 // START rustc.no_codegen.PreCodegen.after.mir
24 // bb0: {
25 //     StorageLive(_1);
26 //     _1 = const PrintName::<T>::VOID;
27 //     unreachable;
28 // }
29 // END rustc.no_codegen.PreCodegen.after.mir