diff --git a/rtl/inc/compproc.inc b/rtl/inc/compproc.inc
index 6a555e93a2..63fc014560 100644
--- a/rtl/inc/compproc.inc
+++ b/rtl/inc/compproc.inc
@@ -883,3 +883,7 @@ function fpc_hugeptr_cmp_normalized_ae(p1, p2: HugePointer): Boolean; compilerpr
 {$ifdef cpullvm}
 {$i llvmintr.inc}
 {$endif cpullvm}
+
+{$ifdef cpuwasm32}
+procedure fpc_wasm_invoke_helper(CodeAddress: CodePointer; Args: Pointer; Result: Pointer); compilerproc;
+{$endif cpuwasm32}
diff --git a/rtl/wasm32/wasm32.inc b/rtl/wasm32/wasm32.inc
index fcfde673eb..e677bbed5d 100644
--- a/rtl/wasm32/wasm32.inc
+++ b/rtl/wasm32/wasm32.inc
@@ -20,6 +20,11 @@
 procedure fpc_wasm32_init_tls(memory: Pointer);external name '__wasm_init_tls';
 {$endif FPC_WASM_THREADS}
 
+procedure fpc_wasm_invoke_helper(CodeAddress: CodePointer; Args: Pointer; Result: Pointer);assembler;nostackframe;
+asm
+  unreachable
+end;
+
 {$define FPC_SYSTEM_HAS_FPC_CPUINIT}
 procedure fpc_cpuinit;
   begin