mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 15:32:06 +00:00
29 lines
611 B
Rust
29 lines
611 B
Rust
|
// Regression test for #66975 - ensure that we don't keep unevaluated
|
||
|
// `!`-typed constants until codegen.
|
||
|
|
||
|
// Force generation of optimized mir for functions that do not reach codegen.
|
||
|
// compile-flags: --emit mir,link
|
||
|
|
||
|
#![feature(const_panic)]
|
||
|
|
||
|
struct PrintName<T>(T);
|
||
|
|
||
|
impl<T> PrintName<T> {
|
||
|
const VOID: ! = panic!();
|
||
|
}
|
||
|
|
||
|
fn no_codegen<T>() {
|
||
|
let _ = PrintName::<T>::VOID;
|
||
|
}
|
||
|
|
||
|
fn main() {}
|
||
|
|
||
|
// END RUST SOURCE
|
||
|
// START rustc.no_codegen.PreCodegen.after.mir
|
||
|
// bb0: {
|
||
|
// StorageLive(_1);
|
||
|
// _1 = const PrintName::<T>::VOID;
|
||
|
// unreachable;
|
||
|
// }
|
||
|
// END rustc.no_codegen.PreCodegen.after.mir
|