From 95a481cf2275541f3f9009ef4f93dc77bcf4aa94 Mon Sep 17 00:00:00 2001 From: Mark Gates Date: Sat, 28 Dec 2024 10:11:36 -0700 Subject: [PATCH] test: fix order of deleting arrays to resolve compiler warning (gcc 14.2) --- unit_test/test_HermitianMatrix.cc | 22 ++++++++++++++-------- unit_test/test_SymmetricMatrix.cc | 22 ++++++++++++++-------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/unit_test/test_HermitianMatrix.cc b/unit_test/test_HermitianMatrix.cc index 59fcf79c4..687afe09e 100644 --- a/unit_test/test_HermitianMatrix.cc +++ b/unit_test/test_HermitianMatrix.cc @@ -362,11 +362,6 @@ void test_HermitianMatrix_fromDevices() } } - for (int dev = 0; dev < num_devices; ++dev) { - blas::device_free(Aarray[dev], *dev_queues[dev]); - } - delete[] Aarray; - //---------- // uplo=General fails test_assert_throw( @@ -374,9 +369,20 @@ void test_HermitianMatrix_fromDevices() blas::Uplo::General, n, Aarray, num_devices, lda, nb, p, q, mpi_comm ), slate::Exception); - // free the device specific queues - for (int dev = 0; dev < num_devices; ++dev) - delete dev_queues[dev]; + //---------- + // Free arrays. + for (int dev = 0; dev < num_devices; ++dev) { + blas::device_free( Aarray[ dev ], *dev_queues[ dev ] ); + Aarray[ dev ] = nullptr; + } + delete[] Aarray; + Aarray = nullptr; + + // Free the device specific queues. + for (int dev = 0; dev < num_devices; ++dev) { + delete dev_queues[ dev ]; + dev_queues[ dev ] = nullptr; + } } //============================================================================== diff --git a/unit_test/test_SymmetricMatrix.cc b/unit_test/test_SymmetricMatrix.cc index 22ec86752..813ceeb6d 100644 --- a/unit_test/test_SymmetricMatrix.cc +++ b/unit_test/test_SymmetricMatrix.cc @@ -362,11 +362,6 @@ void test_SymmetricMatrix_fromDevices() } } - for (int dev = 0; dev < num_devices; ++dev) { - blas::device_free(Aarray[dev], *dev_queues[dev]); - } - delete[] Aarray; - //---------- // uplo=General fails test_assert_throw( @@ -374,9 +369,20 @@ void test_SymmetricMatrix_fromDevices() blas::Uplo::General, n, Aarray, num_devices, lda, nb, p, q, mpi_comm ), slate::Exception); - // free the device specific queues - for (int dev = 0; dev < num_devices; ++dev) - delete dev_queues[dev]; + //---------- + // Free arrays. + for (int dev = 0; dev < num_devices; ++dev) { + blas::device_free( Aarray[ dev ], *dev_queues[ dev ] ); + Aarray[ dev ] = nullptr; + } + delete[] Aarray; + Aarray = nullptr; + + // Free the device specific queues. + for (int dev = 0; dev < num_devices; ++dev) { + delete dev_queues[ dev ]; + dev_queues[ dev ] = nullptr; + } } //==============================================================================