COMPMID-1271 Avoid memory leak in list of gemm methods

Change-Id: I80764d09bf5fb87b3a98bc0e1803d25c6c682c1f
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/139859
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
diff --git a/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp b/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp
index 6e47adb..e840e90 100644
--- a/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp
+++ b/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp
@@ -104,15 +104,23 @@
     GemmImpl_sgemm_gemm_interleaved() : GemmImplementation<float, float>(GemmMethod::GEMM_INTERLEAVED) { }
 };
 
+static GemmImpl_gemv_batched<float, float> gemv_batched_impl{};
+#ifdef __aarch64__
+static GemmImpl_sgemm_gemv_pretransposed sgemm_gemv_pretransposed_impl{};
+static GemmImpl_sgemm_gemv_native_transposed sgemm_gemv_native_transposed_impl{};
+static GemmImpl_sgemm_gemm_native sgemm_gemm_native_impl{};
+#endif
+static GemmImpl_sgemm_gemm_interleaved sgemm_gemm_interleaved_impl{};
+
 /* List of implementations (order matters) */
 static std::vector<GemmImplementation<float, float> *> SGemmMethods = {
-    new GemmImpl_gemv_batched<float, float>(),
+    &gemv_batched_impl,
 #ifdef __aarch64__
-    new GemmImpl_sgemm_gemv_pretransposed(),
-    new GemmImpl_sgemm_gemv_native_transposed(),
-    new GemmImpl_sgemm_gemm_native(),
+    &sgemm_gemv_pretransposed_impl,
+    &sgemm_gemv_native_transposed_impl,
+    &sgemm_gemm_native_impl,
 #endif
-    new GemmImpl_sgemm_gemm_interleaved()
+    &sgemm_gemm_interleaved_impl
 };
 
 /* Templated function to return this list. */