From d8d7ca5c47f271619d5c72ec63c5ace030395888 Mon Sep 17 00:00:00 2001
From: NAUD Maxence <maxence.naud@cea.fr>
Date: Fri, 29 Sep 2023 09:22:54 +0000
Subject: [PATCH] [Fix] small fixes

- remove warning on void pointer arithmetic in TensorImpl
- remove unused variable warning in AddImpl
- update cpu Tensor test
---
 include/aidge/backend/cpu/data/TensorImpl.hpp |  2 +-
 src/operator/AddImpl.cpp                      |  2 ++
 unit_tests/Test_TensorImpl.cpp                | 12 ++++++------
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/include/aidge/backend/cpu/data/TensorImpl.hpp b/include/aidge/backend/cpu/data/TensorImpl.hpp
index d39aa450..012ff5af 100644
--- a/include/aidge/backend/cpu/data/TensorImpl.hpp
+++ b/include/aidge/backend/cpu/data/TensorImpl.hpp
@@ -48,7 +48,7 @@ class TensorImpl_cpu : public TensorImpl {
     };
 
    void* getRaw(std::size_t idx){
-       return rawPtr() + (idx * sizeof(T));
+       return  static_cast<void*>(static_cast<T *>(rawPtr()) + idx);
    };
 
     virtual ~TensorImpl_cpu() = default;
diff --git a/src/operator/AddImpl.cpp b/src/operator/AddImpl.cpp
index d3da4218..be792333 100644
--- a/src/operator/AddImpl.cpp
+++ b/src/operator/AddImpl.cpp
@@ -99,6 +99,7 @@ Aidge::NbElts_t Aidge::AddImpl_cpu<2>::getNbRequiredProtected(const Aidge::IOInd
 Aidge::NbElts_t Aidge::AddImpl_cpu<2>::getRequiredMemory(const Aidge::IOIndex_t outputIdx, const std::vector<Aidge::DimSize_t>& /*inputsSize*/) const {
     // Requires the whole tensors, regardless of available data on inputs
     assert(outputIdx == 0 && "operator has only one output");
+    (void) outputIdx; // avoid unused warning
 
     const auto& outputDims = std::static_pointer_cast<Tensor>(mOp.getOutput(0))->dims();
     return std::accumulate(outputDims.begin(), outputDims.end(),
@@ -167,6 +168,7 @@ Aidge::NbElts_t Aidge::AddImpl_cpu<3>::getNbRequiredProtected(const Aidge::IOInd
 Aidge::NbElts_t Aidge::AddImpl_cpu<3>::getRequiredMemory(const Aidge::IOIndex_t outputIdx, const std::vector<Aidge::DimSize_t>& /*inputsSize*/) const {
     // Requires the whole tensors, regardless of available data on inputs
     assert(outputIdx == 0 && "operator has only one output");
+    (void) outputIdx; // avoid unused warning
 
     const auto& outputDims = std::static_pointer_cast<Tensor>(mOp.getOutput(0))->dims();
     return std::accumulate(outputDims.begin(), outputDims.end(),
diff --git a/unit_tests/Test_TensorImpl.cpp b/unit_tests/Test_TensorImpl.cpp
index d28505f7..6c75c4dc 100644
--- a/unit_tests/Test_TensorImpl.cpp
+++ b/unit_tests/Test_TensorImpl.cpp
@@ -41,12 +41,12 @@ TEST_CASE("Tensor creation") {
     }
 
     SECTION("get function") {
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({0, 0, 0})) == 1);
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({0, 0, 1})) == 2);
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({0, 1, 1})) == 4);
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({1, 1, 0})) == 7);
-      x.get<int>(std::array<std::size_t, 3>({1, 1, 1})) = 36;
-      REQUIRE(x.get<int>(std::array<std::size_t, 3>({1, 1, 1})) == 36);
+      REQUIRE(x.get<int>({0, 0, 0}) == 1);
+      REQUIRE(x.get<int>({0, 0, 1}) == 2);
+      REQUIRE(x.get<int>({0, 1, 1}) == 4);
+      REQUIRE(x.get<int>({1, 1, 0}) == 7);
+      x.get<int>({1, 1, 1}) = 36;
+      REQUIRE(x.get<int>({1, 1, 1}) == 36);
     }
 
     SECTION("Pretty printing for debug") { REQUIRE_NOTHROW(x.print()); }
-- 
GitLab