From 73dece7b583b6a9976fdd15e1c5713922895ace7 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Mon, 16 Sep 2024 16:45:51 +0200 Subject: [PATCH] Fix crash with unnamed unions --- oscar64/Declaration.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/oscar64/Declaration.cpp b/oscar64/Declaration.cpp index 603c67c..27170e2 100644 --- a/oscar64/Declaration.cpp +++ b/oscar64/Declaration.cpp @@ -1450,14 +1450,21 @@ const Ident* Declaration::MangleIdent(void) if (mQualIdent) mMangleIdent = mQualIdent->PreMangle("struct "); else - mMangleIdent = Ident::Unique("struct"); + mMangleIdent = Ident::Unique("struct S", mUID); + } + else if (mType == DT_TYPE_UNION) + { + if (mQualIdent) + mMangleIdent = mQualIdent->PreMangle("union "); + else + mMangleIdent = Ident::Unique("union U", mUID); } else if (mType == DT_TYPE_ENUM) { if (mQualIdent) mMangleIdent = mQualIdent->PreMangle("enum "); else - mMangleIdent = Ident::Unique("enum"); + mMangleIdent = Ident::Unique("enum E", mUID); } else if (mType == DT_TYPE_VOID) {