From 4fbe5acbf68238e795cc8b36594e6989468e1ac0 Mon Sep 17 00:00:00 2001 From: Clement David Date: Fri, 24 Jan 2020 14:03:14 +0100 Subject: [PATCH] elementary_functions: fix invalid uninit error On VS2017 Debug, an unititialized access is detected on iOffset. Initialize to a safe value out of the loop workaround this error. test_run elementary_functions permute Change-Id: Ie8eee0a8134cf5a56cc9cca2ce80ed3cb1072548 --- .../sci_gateway/cpp/sci_permute.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_permute.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_permute.cpp index 361bafb..8f05f06 100644 --- a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_permute.cpp +++ b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_permute.cpp @@ -25,12 +25,13 @@ extern "C" void computeOffsets(int iDims, const int* piDimsArray, const std::vector& dimsVect, int* piOffset, int* piMaxOffset) { + int iOffset = 1; for (int i = 0; i < iDims; ++i) { - int iOffset = i > 0 ? iOffset * piDimsArray[dimsVect[i - 1] - 1] : 1; int j = dimsVect[i] - 1; piOffset[j] = iOffset; piMaxOffset[j] = iOffset * piDimsArray[j]; + iOffset *= piDimsArray[dimsVect[i] - 1]; } } -- 1.7.9.5