From: Paul Eggert Date: Fri, 1 Apr 2022 06:25:35 +0000 (-0700) Subject: Work around memory-leak false alarms X-Git-Tag: v2.72c~63 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce3d5ff4f2d46e77bdb30e1061bcc36c3cfe1112;p=thirdparty%2Fautoconf.git Work around memory-leak false alarms Problem reported by Raphael Isemann in: https://lists.gnu.org/r/autoconf-patches/2022-03/msg00007.html * lib/autoconf/c.m4 (_AC_C_C99_TEST_MAIN, AC_C_FLEXIBLE_ARRAY_MEMBER): * tests/data/gnulib_std_gnu11_2020_08_17.m4 (_AC_C_C99_TEST_HEADER): Free storage allocated via malloc, to pacify overly-picky implementations that issue false alarms about memory leaks. --- diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index 48bd49a3..42fbcbd0 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -1330,6 +1330,8 @@ ac_c_conftest_c99_main=' ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); // Check named initializers. struct named_init ni = { @@ -2170,7 +2172,9 @@ AC_DEFUN([AC_C_FLEXIBLE_ARRAY_MEMBER], struct s *p = (struct s *) malloc (offsetof (struct s, d) + m * sizeof (double)); p->d[0] = 0.0; - return p->d != (double *) NULL;]])], + m = p->d != (double *) NULL; + free (p); + return m;]])], [ac_cv_c_flexmember=yes], [ac_cv_c_flexmember=no])]) if test $ac_cv_c_flexmember = yes; then diff --git a/tests/data/gnulib_std_gnu11_2020_08_17.m4 b/tests/data/gnulib_std_gnu11_2020_08_17.m4 index da52cd6f..21f7cc7a 100644 --- a/tests/data/gnulib_std_gnu11_2020_08_17.m4 +++ b/tests/data/gnulib_std_gnu11_2020_08_17.m4 @@ -319,6 +319,8 @@ AC_DEFUN([_AC_C_C99_TEST_BODY], ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); // Check named initializers. struct named_init ni = {