From 5b81379dacd6d7232f2cade7bd23c820464f688a Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:28:13 +0200 Subject: [PATCH] Fix const structs in arrays without braces --- oscar64/InterCode.cpp | 2 +- oscar64/Parser.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index 97b595c..a92b4fc 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -22913,7 +22913,7 @@ void InterCodeProcedure::Close(void) { GrowingTypeArray tstack(IT_NONE); - CheckFunc = !strcmp(mIdent->mString, "room_show"); + CheckFunc = !strcmp(mIdent->mString, "main"); CheckCase = false; mEntryBlock = mBlocks[0]; diff --git a/oscar64/Parser.cpp b/oscar64/Parser.cpp index 0fd1bc6..22fbb71 100644 --- a/oscar64/Parser.cpp +++ b/oscar64/Parser.cpp @@ -2347,12 +2347,15 @@ Expression* Parser::ParseConstInitExpression(Declaration* dtype, bool inner) last = cdec; } - if (!ConsumeTokenIf(TK_COMMA)) - break; - mdec = mdec->mNext; while (!mdec && path.Size()) mdec = path.Pop()->mParams; + + if (inner && !mdec) + break; + + if (!ConsumeTokenIf(TK_COMMA)) + break; } else if (inner) break;