From 4d14cbe3a5dc62c35109657de49a935e55ff087a Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Fri, 10 Dec 2021 08:31:57 +0100 Subject: [PATCH] Fix function pointer call detection for fast call selection --- oscar64/GlobalAnalyzer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/oscar64/GlobalAnalyzer.cpp b/oscar64/GlobalAnalyzer.cpp index d643d5f..783dd69 100644 --- a/oscar64/GlobalAnalyzer.cpp +++ b/oscar64/GlobalAnalyzer.cpp @@ -418,6 +418,12 @@ void GlobalAnalyzer::RegisterCall(Declaration* from, Declaration* to) mCallingFunctions.Push(from); from->mCalled.Push(to); } + else if (to->mType == DT_TYPE_POINTER && to->mBase->mType == DT_TYPE_FUNCTION) + { + if (from->mCalled.Size() == 0) + mCallingFunctions.Push(from); + from->mCalled.Push(to->mBase); + } } }