aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
diff options
context:
space:
mode:
authorMatthew Bentham <matthew.bentham@arm.com>2022-02-11 08:29:42 +0000
committerColm Donelan <colm.donelan@arm.com>2022-02-15 21:22:03 +0000
commit1855c6b2d21c04d054f6ebd1160c70c669e92a07 (patch)
treed8976d2fa554b2b68838ccda9e3efcce6f6740c6 /src/backends/reference/test/RefWorkloadFactoryHelper.hpp
parenteef6b76fedad6ba812c4eae74266c2828f9e8de4 (diff)
downloadarmnn-1855c6b2d21c04d054f6ebd1160c70c669e92a07.tar.gz
Fix unit test where NeonMemoryManager was used instead of RefMemoryManager
Although the Neon and Ref backends can use each other's TensorHandles, their TensorHandleFactories can't use each other's MemoryManagers. Incorrectly passing the NeonMemoryManager to the RefTensorHandleFactory in unit test utility code resulted in an incorrect static_pointer_cast and a warning from the Undefined Behaviour Sanitizer. This change fixes the test code, and replaces use of static_pointer_cast with armnn::PolymorphicPointerDowncast which will check that the cast is legal in debug builds. Also, remove MockWorkloadFactoryHelper.hpp as it is unused. Signed-off-by: Matthew Bentham <matthew.bentham@arm.com> Change-Id: I2b425e86fccacd7cc5ff186521fc6e53e7e50c77
Diffstat (limited to 'src/backends/reference/test/RefWorkloadFactoryHelper.hpp')
-rw-r--r--src/backends/reference/test/RefWorkloadFactoryHelper.hpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backends/reference/test/RefWorkloadFactoryHelper.hpp b/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
index e413d045f9..f0a842de57 100644
--- a/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
+++ b/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
@@ -7,6 +7,8 @@
#include <backendsCommon/test/WorkloadFactoryHelper.hpp>
+#include <armnn/utility/PolymorphicDowncast.hpp>
+
#include <reference/RefBackend.hpp>
#include <reference/RefWorkloadFactory.hpp>
#include "reference/RefTensorHandleFactory.hpp"
@@ -34,7 +36,7 @@ struct WorkloadFactoryHelper<armnn::RefWorkloadFactory>
const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
{
- return armnn::RefTensorHandleFactory(std::static_pointer_cast<armnn::RefMemoryManager>(memoryManager));
+ return armnn::RefTensorHandleFactory(armnn::PolymorphicPointerDowncast<armnn::RefMemoryManager>(memoryManager));
}
};