File 0116-jit-Fix-metadata-registration-for-empty-modules.patch of Package erlang

From e1a029e88bf4afc2c852f6c72204522a20c4df59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20H=C3=B6gberg?= <john@erlang.org>
Date: Mon, 24 Apr 2023 12:53:03 +0200
Subject: [PATCH] jit: Fix metadata registration for empty modules

---
 erts/emulator/beam/jit/beam_jit_common.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/erts/emulator/beam/jit/beam_jit_common.cpp b/erts/emulator/beam/jit/beam_jit_common.cpp
index a0bb07ce56..3200f75407 100644
--- a/erts/emulator/beam/jit/beam_jit_common.cpp
+++ b/erts/emulator/beam/jit/beam_jit_common.cpp
@@ -369,10 +369,11 @@ void BeamModuleAssembler::register_metadata(const BeamCodeHeader *header) {
     ranges.reserve(functions.size() + 2);
 
     ASSERT((ErtsCodePtr)getBaseAddress() == (ErtsCodePtr)header);
+    ASSERT(functions.size() == header->num_functions);
 
     /* Push info about the header */
     ranges.push_back({.start = (ErtsCodePtr)getBaseAddress(),
-                      .stop = getCode(functions[0]),
+                      .stop = (ErtsCodePtr)&header->functions[functions.size()],
                       .name = module_name + "::codeHeader"});
 
     for (unsigned i = 0; i < functions.size(); i++) {
-- 
2.35.3

openSUSE Build Service is sponsored by