From 19e2498cc8d18a3db8aa5890901e37690c0cee8a Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Mon, 16 Oct 2023 14:13:20 +0200 Subject: [PATCH] Fix member constructor for multi dim array members --- oscar64/Parser.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/oscar64/Parser.cpp b/oscar64/Parser.cpp index b191c87..0653df8 100644 --- a/oscar64/Parser.cpp +++ b/oscar64/Parser.cpp @@ -1974,6 +1974,17 @@ void Parser::PrependMemberConstructor(Declaration* pthis, Declaration* cfunc) } else { + qexp->mDecType = dec->mBase->mBase; + + while (qexp->mDecType->mType == DT_TYPE_ARRAY) + { + Expression* iexp = new Expression(pthis->mLocation, EX_PREFIX); + iexp->mToken = TK_MUL; + iexp->mLeft = qexp; + iexp->mDecType = qexp->mDecType->mBase; + qexp = iexp; + } + qexp->mDecType = new Declaration(pthis->mLocation, DT_TYPE_POINTER); qexp->mDecType->mFlags |= DTF_CONST | DTF_DEFINED; qexp->mDecType->mBase = bdec;