From 7e9ceaa281f52488398c42fb803fb14bcd8f76bb Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Mon, 1 Dec 2025 22:16:37 +0100 Subject: [PATCH] Fix #5982 Add escape analysis check for #load directive to fix #5982. --- src/check_stmt.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index 5e7a8e323..835f0162a 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -2596,6 +2596,10 @@ void check_unsafe_return(Operand const &o, Type *type, Ast *expr) { unsafe_return_error(o, "a slice of a compound literal"); } } else if (o.mode == Addressing_Constant && is_type_slice(type)) { + if (is_load_directive_call(o.expr)) { + return; + } + ERROR_BLOCK(); unsafe_return_error(o, "a compound literal of a slice"); error_line("\tNote: A constant slice value will use the memory of the current stack frame\n");