From bb9add87bc3f409db0a6196e7bd9a362b7ac6deb Mon Sep 17 00:00:00 2001 From: Oliver Old Date: Wed, 19 May 2021 16:56:22 +0200 Subject: [PATCH] Fix UBSan error about member call on address not pointing to ScriptTranslatorManager The error occurred when calling getTranslator(const AbstractNodePtr&) on an RTShader::SGScriptTranslatorManager in ScriptCompilerManager::getTranslator(const AbstractNodePtr&) due to the ScriptTranslatorManager not being exported. Therefore, technically, both OgreMain and OgreRTShaderSystem contain distinct ScriptTranslatorManager types. See https://stackoverflow.com/a/57304113 and https://bugs.llvm.org/show_bug.cgi?id=39191#c1. --- OgreMain/include/OgreScriptTranslator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OgreMain/include/OgreScriptTranslator.h b/OgreMain/include/OgreScriptTranslator.h index d1eb440de44..094dc95ff21 100644 --- a/OgreMain/include/OgreScriptTranslator.h +++ b/OgreMain/include/OgreScriptTranslator.h @@ -120,7 +120,7 @@ namespace Ogre{ * ScriptCompilerManager tied to specific object types. * Each manager may manage multiple types. */ - class ScriptTranslatorManager : public ScriptTranslatorAlloc + class _OgreExport ScriptTranslatorManager : public ScriptTranslatorAlloc { public: // required - virtual destructor