diff --git a/include/aidge/backend/cpu/data/TensorImpl.hpp b/include/aidge/backend/cpu/data/TensorImpl.hpp index d39aa4505e39fc07a9a2882981f7b619363ac5b0..012ff5af1c15e73fe76114a23ec62f9ef023bce2 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 d3da42185237a59146af17199e34a00dbebd6d96..be7923339308073c26b60ee0349a44037769765a 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 d28505f7b6f2961e581cadee778bdb16364353de..6c75c4dc19ff1b646308858ad262441d43390122 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()); }