IVGCVSW-3058 Segmentation fault running Resnetv2.50 tfite int8 model

 * The execution crashed because the weights of a convolution were
   null during the network execution
 * Copied the weights and bias when folding a pad layer into a
   convolution

Change-Id: I3ae72143d04cac90d4f878cdf3b1a08b2f2a5c90
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
diff --git a/src/armnn/optimizations/FoldPadIntoConvolution2d.hpp b/src/armnn/optimizations/FoldPadIntoConvolution2d.hpp
index f789ffa..b2a2ba4 100644
--- a/src/armnn/optimizations/FoldPadIntoConvolution2d.hpp
+++ b/src/armnn/optimizations/FoldPadIntoConvolution2d.hpp
@@ -59,6 +59,17 @@
                                                                          name.c_str());
         newConv2dLayer.GetOutputHandler().SetTensorInfo(outInfo);
 
+        // Copy weights and bias to the new convolution layer
+        BOOST_ASSERT_MSG(convolution2dLayer->m_Weight != nullptr,
+                         "FoldPadIntoConvolution2d: Weights data should not be null.");
+        newConv2dLayer.m_Weight = std::move(convolution2dLayer->m_Weight);
+        if (descriptor.m_BiasEnabled)
+        {
+            BOOST_ASSERT_MSG(convolution2dLayer->m_Bias != nullptr,
+                             "FoldPadIntoConvolution2d: Bias data should not be null if bias is enabled.");
+            newConv2dLayer.m_Bias = std::move(convolution2dLayer->m_Bias);
+        }
+
         // Reconnects with original parent.
         newConv2dLayer.GetOutputSlot().MoveAllConnections(*parentOut);
         // Parent is now the new convolution2d layer.