From 92ae1858ff2eff26dab6acbe3ac100ddc1cd168d Mon Sep 17 00:00:00 2001 From: am009 Date: Fri, 11 Jul 2025 23:59:19 +0000 Subject: [PATCH] Fix load and store type cast. --- src/parsers/load.cc | 4 +++- src/parsers/store.cc | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/parsers/load.cc b/src/parsers/load.cc index 6cb88f9e..92079fa4 100644 --- a/src/parsers/load.cc +++ b/src/parsers/load.cc @@ -9,7 +9,9 @@ string wasmdec::parsers::load(Context* ctx, Expression* ex) { ctx->functionLevelExpression = false; string var = Convert::parseExpr(ctx, lxp->ptr); ret += util::tab(ctx->depth); - ret += "*(void*)("; + ret += "*("; + ret += Convert::resolveType(lxp->type); + ret += "*)("; ret += var; ret += ")"; return ret; diff --git a/src/parsers/store.cc b/src/parsers/store.cc index 96c88269..d4a5c572 100644 --- a/src/parsers/store.cc +++ b/src/parsers/store.cc @@ -32,13 +32,15 @@ string wasmdec::parsers::store(Context* ctx, Expression* ex) { ret += util::tab(ctx->depth); } } - ret += "*((void*)("; + ret += "*(("; + ret += Convert::resolveType(sxp->value->type); + ret += "*)("; ret += _offset; - ret += ") = "; + ret += ")) = "; ret += val; if (!isInline) { if (!valueIsAssignment) { - ret += "; \n";; + ret += ";\n";; } } return ret;