diff options
author | Mike Kelly <mike.kelly@arm.com> | 2019-06-14 12:35:24 +0100 |
---|---|---|
committer | mike.kelly <mike.kelly@arm.com> | 2019-06-14 14:27:23 +0000 |
commit | db48288f54ad441f34108cf270ed3089d3a465ea (patch) | |
tree | 08372fd4ef909dc161212f09c90a010adaf398a4 /src/backends | |
parent | 24d7321ad7897e8836d4a38039a73a0ec419cf43 (diff) | |
download | armnn-db48288f54ad441f34108cf270ed3089d3a465ea.tar.gz |
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 <mike.kelly@arm.com>
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/cl/test/ClCreateWorkloadTests.cpp | 64 | ||||
-rw-r--r-- | src/backends/neon/test/NeonCreateWorkloadTests.cpp | 10 | ||||
-rw-r--r-- | src/backends/reference/test/RefCreateWorkloadTests.cpp | 19 |
3 files changed, 43 insertions, 50 deletions
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<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({2, 3, 8, 16}) : std::initializer_list<unsigned int>({2, 8, 16, 3}); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({2, 2, 2, 10}) : std::initializer_list<unsigned int>({2, 2, 10, 2}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 3, 8, 16}) + : std::initializer_list<unsigned int>({2, 8, 16, 3}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 2, 2, 10}) + : std::initializer_list<unsigned int>({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<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(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<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) - : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) - : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) + : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) + : std::initializer_list<unsigned int>({ 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<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({3, 5, 5, 1}) : std::initializer_list<unsigned int>({3, 1, 5, 5}); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({3, 5, 5, 1}) : std::initializer_list<unsigned int>({3, 1, 5, 5}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 5, 5, 1}) + : std::initializer_list<unsigned int>({3, 1, 5, 5}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 5, 5, 1}) + : std::initializer_list<unsigned int>({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<ClPooling2dWorkload, DataType>(factory, graph, dataLayout); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({3, 2, 5, 5}) : std::initializer_list<unsigned int>({3, 5, 5, 2}); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({3, 2, 2, 4}) : std::initializer_list<unsigned int>({3, 2, 4, 2}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 2, 5, 5}) + : std::initializer_list<unsigned int>({3, 5, 5, 2}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 2, 2, 4}) + : std::initializer_list<unsigned int>({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<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(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<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 }) - : std::initializer_list<unsigned int>({ 5, 50, 67, 20 }); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 }) - : std::initializer_list<unsigned int>({ 5, 50, 67, 20 }); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 }) + : std::initializer_list<unsigned int>({ 5, 50, 67, 20 }); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 }) + : std::initializer_list<unsigned int>({ 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) diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp index 83823659b0..523588c50a 100644 --- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp +++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp @@ -275,12 +275,10 @@ static void NeonCreateDepthWiseConvolutionWorkloadTest(DataLayout dataLayout) auto inputHandle = boost::polymorphic_downcast<INeonTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<INeonTensorHandle*>(queueDescriptor.m_Outputs[0]); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) - : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) - : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) + : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) + : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, TensorInfo(inputShape, DataType))); BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, TensorInfo(outputShape, DataType))); diff --git a/src/backends/reference/test/RefCreateWorkloadTests.cpp b/src/backends/reference/test/RefCreateWorkloadTests.cpp index a0fc7286a9..ef8ff9e6a0 100644 --- a/src/backends/reference/test/RefCreateWorkloadTests.cpp +++ b/src/backends/reference/test/RefCreateWorkloadTests.cpp @@ -270,10 +270,10 @@ static void RefCreateConvolution2dWorkloadTest(DataLayout dataLayout = DataLayou auto workload = CreateConvolution2dWorkloadTest<RefConvolution2dWorkload, DataType::Float32> (factory, graph, dataLayout); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({2, 3, 8, 16}) : std::initializer_list<unsigned int>({2, 8, 16, 3}); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ? - std::initializer_list<unsigned int>({2, 2, 2, 10}) : std::initializer_list<unsigned int>({2, 2, 10, 2}); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 3, 8, 16}) + : std::initializer_list<unsigned int>({2, 8, 16, 3}); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 2, 2, 10}) + : std::initializer_list<unsigned int>({2, 2, 10, 2}); // Checks that outputs and inputs are as we expect them (see definition of CreateConvolution2dWorkloadTest). CheckInputOutput(std::move(workload), @@ -298,12 +298,11 @@ static void RefCreateDepthwiseConvolutionWorkloadTest(DataLayout dataLayout) auto workload = CreateDepthwiseConvolution2dWorkloadTest<RefDepthwiseConvolution2dWorkload, DataType::Float32> (factory, graph, dataLayout); - std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) - : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); - std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) - ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) - : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) + : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 }) + : std::initializer_list<unsigned int>({ 2, 5, 5, 2 }); + // Checks that inputs/outputs are as we expect them (see definition of CreateDepthwiseConvolution2dWorkloadTest). CheckInputOutput(std::move(workload), TensorInfo(inputShape, DataType::Float32), |