From 27e3453cf5234e00879f8a434cc72fa2f1d7b984 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Tue, 17 Aug 2021 22:29:40 +0200 Subject: [PATCH] Initialize pointers with a known invalid (out-of-bound) value. --- sonar-project.properties | 4 ---- teshsuite/smpi/replay-ti-colls/replay-ti-colls.c | 16 +++++++--------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 53fee57ac3..4194ed5d33 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -168,10 +168,6 @@ sonar.issue.ignore.multicriteria.s4.resourceKey=src/smpi/**/*.cpp sonar.issue.ignore.multicriteria.s5.ruleKey=cpp:S995 sonar.issue.ignore.multicriteria.s5.resourceKey=src/smpi/bindings/*.cpp -#There is an intentional uninitialized variable in this test, to check SMPI does not use irrelevant values for some ranks -sonar.issue.ignore.multicriteria.s6.ruleKey=c:S836 -sonar.issue.ignore.multicriteria.s6.resourceKey=teshsuite/smpi/replay-ti-colls/replay-ti-colls.c - # Exclude some files from the analysis: # - our unit tests # - the tests that we borrowed elsewhere (MPICH and ISP) diff --git a/teshsuite/smpi/replay-ti-colls/replay-ti-colls.c b/teshsuite/smpi/replay-ti-colls/replay-ti-colls.c index 4e0cb638d6..b7d24b0e15 100644 --- a/teshsuite/smpi/replay-ti-colls/replay-ti-colls.c +++ b/teshsuite/smpi/replay-ti-colls/replay-ti-colls.c @@ -1,6 +1,3 @@ -//exclude from clang static analysis, as there is an intentional uninitialized value passed to MPI calls. -#ifndef __clang_analyzer__ - #include "mpi.h" #include #include @@ -42,10 +39,12 @@ int main(int argc, char** argv) for (int i = 0; i < nprocs; i++) alltoallvcounts[i] = BOUNDED(i + rank); - int* recvbuf; - int* displs; - int* counts; - int* rcounts; + int* dummy_buffer = malloc(sizeof(int)); + // initialize buffers with an invalid value (we want to trigger a valgrind error if they are used) + int* recvbuf = dummy_buffer + 1; + int* displs = dummy_buffer + 1; + int* counts = dummy_buffer + 1; + int* rcounts = dummy_buffer + 1; if (rank == 0) setup_recvbuf(nprocs, &recvbuf, &displs, &counts, &rcounts); @@ -58,6 +57,7 @@ int main(int argc, char** argv) MPI_Scatterv(recvbuf, counts, displs, MPI_INT, sendbuf, BOUNDED(rank), MPI_INT, 0, MPI_COMM_WORLD); MPI_Reduce(sendbuf, recvbuf, BUFSIZE, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); + free(dummy_buffer); if (rank != 0) setup_recvbuf(nprocs, &recvbuf, &displs, &counts, &rcounts); @@ -88,5 +88,3 @@ int main(int argc, char** argv) MPI_Finalize(); return 0; } - -#endif -- 2.20.1