//@revisions: noopt opt //@[opt] compile-flags: -O //! Make sure we error on erroneous consts even if they are unused. struct Fail(T); impl Fail { const C: () = panic!(); //~ERROR evaluation of `Fail::::C` failed } #[inline(never)] const fn no_codegen() { if false { // This bad constant is only used in dead code in a no-codegen function... and yet we still // must make sure that the build fails. // This relies on const-eval evaluating all `required_consts` of `const fn`. Fail::::C; //~ constant } } pub static FOO: () = no_codegen::(); fn main() { FOO }