From 29932db09bb985072dc68d9d4e4acab09e69562a Mon Sep 17 00:00:00 2001 From: woppopo Date: Wed, 26 Jan 2022 13:06:09 +0900 Subject: `const_deallocate`: Don't deallocate memory allocated in an another const. Does nothing at runtime. `const_allocate`: Returns a null pointer at runtime. --- compiler/rustc_codegen_ssa/src/mir/intrinsic.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'compiler/rustc_codegen_ssa/src') diff --git a/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs b/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs index 3657f80c2de..c654232c10a 100644 --- a/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs +++ b/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs @@ -369,6 +369,16 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { } } + sym::const_allocate => { + // returns a null pointer at runtime. + bx.const_null(bx.type_i8p()) + } + + sym::const_deallocate => { + // nop at runtime. + return; + } + // This requires that atomic intrinsics follow a specific naming pattern: // "atomic_[_]", and no ordering means SeqCst name if name_str.starts_with("atomic_") => { -- cgit 1.4.1-3-g733a5