From e17e4968d828fc9943a6cbafc713d69e87540051 Mon Sep 17 00:00:00 2001 From: Joana Cruz <153619970+joanaxcruz@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:02:02 +0000 Subject: [PATCH] Add matching mpfr_clear statements for mpfr_init (#533) This fixes some of the messages coming up in asan test output, but not all of them. Same number of tests failing after this change. --- src/gencoef/gencoef.c | 5 +++++ src/libm-tester/tester.c | 1 + src/libm-tester/tester2dp.c | 2 +- src/libm-tester/tester2simddp.c | 1 + src/libm-tester/tester2simdsp.c | 1 + src/libm-tester/tester2sp.c | 1 + src/quad-tester/qtester.c | 1 + src/quad/sleefsimdqp.c | 1 + 8 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gencoef/gencoef.c b/src/gencoef/gencoef.c index 33f46709..87ea348e 100644 --- a/src/gencoef/gencoef.c +++ b/src/gencoef/gencoef.c @@ -121,6 +121,7 @@ int main(int argc, char **argv) mpfr_set_d(b, x, GMP_RNDN); printf("%g\n", countULP(b, a)); + mpfr_clears(a, b, NULL); exit(0); } #endif @@ -138,6 +139,7 @@ int main(int argc, char **argv) mpfr_set_d(b, x, GMP_RNDN); printf("%g\n", countULP(b, a)); + mpfr_clears(a, b, NULL); exit(0); } #endif @@ -155,6 +157,7 @@ int main(int argc, char **argv) mpfr_set_ld(b, x, GMP_RNDN); printf("%g\n", countULP(b, a)); + mpfr_clears(a, b, NULL); exit(0); } #endif @@ -172,6 +175,7 @@ int main(int argc, char **argv) mpfr_set_f128(b, x, GMP_RNDN); printf("%g\n", countULP(b, a)); + mpfr_clears(a, b, NULL); exit(0); } #endif @@ -285,6 +289,7 @@ int main(int argc, char **argv) mpfr_pow(am[i], a[i], frb, GMP_RNDN); mpfr_set_d(frb, PADD, GMP_RNDN); mpfr_pow(aa[i], a[i], frb, GMP_RNDN); + mpfr_clears(a[i], v[i], am[i], aa[i], NULL); } double best = 1e+100, bestsum = 1e+100, bestworstx; diff --git a/src/libm-tester/tester.c b/src/libm-tester/tester.c index 1b7b63a8..03f5d099 100644 --- a/src/libm-tester/tester.c +++ b/src/libm-tester/tester.c @@ -5038,6 +5038,7 @@ void do_test() { for(d = -1;d < 8 && success;d += 0.001) checkAccuracy_f(mpfr_erfc, child_erfcf_u15, d, 1.5); showResult(success); } + mpfr_clears(frc, frt, frx, fry, frz, NULL); } int main(int argc, char **argv) { diff --git a/src/libm-tester/tester2dp.c b/src/libm-tester/tester2dp.c index 02064415..079c84c4 100644 --- a/src/libm-tester/tester2dp.c +++ b/src/libm-tester/tester2dp.c @@ -986,6 +986,6 @@ int main(int argc,char **argv) } } } - + mpfr_clears(frw, frx, fry, frz, NULL); exit(0); } diff --git a/src/libm-tester/tester2simddp.c b/src/libm-tester/tester2simddp.c index 5d2b77b6..f236c3b9 100644 --- a/src/libm-tester/tester2simddp.c +++ b/src/libm-tester/tester2simddp.c @@ -1294,4 +1294,5 @@ int main(int argc,char **argv) } } } + mpfr_clears(frw, frx, fry, frz, NULL); } diff --git a/src/libm-tester/tester2simdsp.c b/src/libm-tester/tester2simdsp.c index ca017d14..b6574337 100644 --- a/src/libm-tester/tester2simdsp.c +++ b/src/libm-tester/tester2simdsp.c @@ -1294,4 +1294,5 @@ int main(int argc,char **argv) } #endif } + mpfr_clears(frw, frx, fry, frz, NULL); } diff --git a/src/libm-tester/tester2sp.c b/src/libm-tester/tester2sp.c index fb4056b2..314915c8 100644 --- a/src/libm-tester/tester2sp.c +++ b/src/libm-tester/tester2sp.c @@ -1031,6 +1031,7 @@ int main(int argc,char **argv) } } } + mpfr_clears(frw, frx, fry, frz, NULL); exit(0); } diff --git a/src/quad-tester/qtester.c b/src/quad-tester/qtester.c index 850a3091..ce32db91 100644 --- a/src/quad-tester/qtester.c +++ b/src/quad-tester/qtester.c @@ -1491,6 +1491,7 @@ void do_test(int options) { } checkResult(success, maxError); } + mpfr_clears(frw, frx, fry, frz, NULL); } int main(int argc, char **argv) { diff --git a/src/quad/sleefsimdqp.c b/src/quad/sleefsimdqp.c index 077a17d4..fb295046 100644 --- a/src/quad/sleefsimdqp.c +++ b/src/quad/sleefsimdqp.c @@ -4515,6 +4515,7 @@ int main(int argc, char **argv) { mpfr_set_f128(fr3, xgetq(a3, lane), GMP_RNDN); printf("test : %s\n", sprintfr(fr3)); #endif + mpfr_clears(fr0, fr1, fr2, fr3, NULL); } #endif #endif