From 0dd74b1558bf5fc01590adacd1662c2893f7abdb Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Wed, 10 Nov 2021 15:49:17 +0800 Subject: [PATCH] Fix indirect call for some builtin function Signed-off-by: Huang Qi --- core/iwasm/compilation/aot_compiler.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/iwasm/compilation/aot_compiler.h b/core/iwasm/compilation/aot_compiler.h index 67faa600fc..549a0e304d 100644 --- a/core/iwasm/compilation/aot_compiler.h +++ b/core/iwasm/compilation/aot_compiler.h @@ -325,6 +325,23 @@ check_type_compatible(uint8 src_type, uint8 dst_type) return false; \ } \ } \ + else if (comp_ctx->is_indirect_mode) { \ + int32 func_index; \ + if (!(func_ptr_type = LLVMPointerType(func_type, 0))) { \ + aot_set_last_error("create LLVM function type failed."); \ + return false; \ + } \ + \ + func_index = aot_get_native_symbol_index(comp_ctx, #name); \ + if (func_index < 0) { \ + return false; \ + } \ + if (!(func = aot_get_func_from_table( \ + comp_ctx, func_ctx->native_symbol, func_ptr_type, \ + func_index))) { \ + return false; \ + } \ + } \ else { \ char *func_name = #name; \ /* AOT mode, delcare the function */ \