From db48288f54ad441f34108cf270ed3089d3a465ea Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Fri, 14 Jun 2019 12:35:24 +0100 Subject: MLCE-121 Github: Build error on GCC 9 * Fixed an error encountered when building on GCC 9 error: moving a local object in a return statement prevents copy elision * Fixed failures in unit tests due to std::initializer_list handling in GCC 9 Change-Id: I4bfdd2113dfedcecd29479ee556e4ae22278755d Signed-off-by: Mike Kelly --- src/backends/cl/test/ClCreateWorkloadTests.cpp | 64 ++++++++++++-------------- 1 file changed, 30 insertions(+), 34 deletions(-) (limited to 'src/backends/cl') diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp index dc884e01b1..d401701dda 100644 --- a/src/backends/cl/test/ClCreateWorkloadTests.cpp +++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp @@ -243,17 +243,17 @@ static void ClConvolution2dWorkloadTest(DataLayout dataLayout) graph, dataLayout); - std::initializer_list inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list({2, 3, 8, 16}) : std::initializer_list({2, 8, 16, 3}); - std::initializer_list outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list({2, 2, 2, 10}) : std::initializer_list({2, 2, 10, 2}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({2, 3, 8, 16}) + : std::initializer_list({2, 8, 16, 3}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({2, 2, 2, 10}) + : std::initializer_list({2, 2, 10, 2}); // Checks that outputs and inputs are as we expect them (see definition of CreateConvolution2dWorkloadTest). Convolution2dQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + BOOST_TEST((inputHandle->GetShape() == inputShape)); + BOOST_TEST((outputHandle->GetShape() == outputShape)); } BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNchwWorkload) @@ -291,15 +291,13 @@ static void ClDepthwiseConvolutionWorkloadTest(DataLayout dataLayout) auto inputHandle = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); - std::initializer_list inputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list({ 2, 2, 5, 5 }) - : std::initializer_list({ 2, 5, 5, 2 }); - std::initializer_list outputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list({ 2, 2, 5, 5 }) - : std::initializer_list({ 2, 5, 5, 2 }); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({ 2, 2, 5, 5 }) + : std::initializer_list({ 2, 5, 5, 2 }); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({ 2, 2, 5, 5 }) + : std::initializer_list({ 2, 5, 5, 2 }); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + BOOST_TEST((inputHandle->GetShape() == inputShape)); + BOOST_TEST((outputHandle->GetShape() == outputShape)); } BOOST_AUTO_TEST_CASE(CreateDepthwiseConvolutionFloat32NhwcWorkload) @@ -382,13 +380,13 @@ static void ClNormalizationWorkloadTest(DataLayout dataLayout) auto inputHandle = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); - std::initializer_list inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list({3, 5, 5, 1}) : std::initializer_list({3, 1, 5, 5}); - std::initializer_list outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list({3, 5, 5, 1}) : std::initializer_list({3, 1, 5, 5}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({3, 5, 5, 1}) + : std::initializer_list({3, 1, 5, 5}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({3, 5, 5, 1}) + : std::initializer_list({3, 1, 5, 5}); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + BOOST_TEST((inputHandle->GetShape() == inputShape)); + BOOST_TEST((outputHandle->GetShape() == outputShape)); } BOOST_AUTO_TEST_CASE(CreateNormalizationFloat32NchwWorkload) @@ -420,18 +418,18 @@ static void ClPooling2dWorkloadTest(DataLayout dataLayout) auto workload = CreatePooling2dWorkloadTest(factory, graph, dataLayout); - std::initializer_list inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list({3, 2, 5, 5}) : std::initializer_list({3, 5, 5, 2}); - std::initializer_list outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list({3, 2, 2, 4}) : std::initializer_list({3, 2, 4, 2}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({3, 2, 5, 5}) + : std::initializer_list({3, 5, 5, 2}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({3, 2, 2, 4}) + : std::initializer_list({3, 2, 4, 2}); // Check that inputs/outputs are as we expect them (see definition of CreatePooling2dWorkloadTest). Pooling2dQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + BOOST_TEST((inputHandle->GetShape() == inputShape)); + BOOST_TEST((outputHandle->GetShape() == outputShape)); } BOOST_AUTO_TEST_CASE(CreatePooling2dFloatNchwWorkload) @@ -668,15 +666,13 @@ static void ClL2NormalizationWorkloadTest(DataLayout dataLayout) auto inputHandle = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); - std::initializer_list inputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list({ 5, 20, 50, 67 }) - : std::initializer_list({ 5, 50, 67, 20 }); - std::initializer_list outputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list({ 5, 20, 50, 67 }) - : std::initializer_list({ 5, 50, 67, 20 }); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({ 5, 20, 50, 67 }) + : std::initializer_list({ 5, 50, 67, 20 }); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list({ 5, 20, 50, 67 }) + : std::initializer_list({ 5, 50, 67, 20 }); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + BOOST_TEST((inputHandle->GetShape() == inputShape)); + BOOST_TEST((outputHandle->GetShape() == outputShape)); } BOOST_AUTO_TEST_CASE(CreateL2NormalizationFloatNchwWorkload) -- cgit v1.2.1