From 20b1ccd672ae9a3cce21738b1ba0d43e1564332a Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 23 Oct 2020 14:18:06 -0700 Subject: [PATCH] GNU extension override mangling fix --- IDEHelper/Compiler/BfMangler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfMangler.cpp b/IDEHelper/Compiler/BfMangler.cpp index a092e329..0f0e274f 100644 --- a/IDEHelper/Compiler/BfMangler.cpp +++ b/IDEHelper/Compiler/BfMangler.cpp @@ -901,7 +901,9 @@ String BfGNUMangler::Mangle(BfMethodInstance* methodInst) else if (methodDef->mCheckedKind == BfCheckedKind_Unchecked) name += "`UCHK"; - if ((methodInst->mMethodDef->mDeclaringType->mPartialIdx != -1) && (!methodInst->mIsForeignMethodDef)) + if ((methodInst->mMethodDef->mDeclaringType->mPartialIdx != -1) && (methodInst->mMethodDef->mDeclaringType->IsExtension()) && + (!methodInst->mIsForeignMethodDef) && (!methodInst->mMethodDef->mIsExtern) && + ((!methodInst->mMethodDef->mIsOverride) || (methodDef->mName == BF_METHODNAME_MARKMEMBERS) || (methodDef->mMethodType == BfMethodType_Dtor))) { auto declType = methodInst->mMethodDef->mDeclaringType; BF_ASSERT(methodInst->GetOwner()->mTypeDef->mIsCombinedPartial);