]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Work around memory-leak false alarms
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 1 Apr 2022 06:25:35 +0000 (23:25 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 1 Apr 2022 06:25:54 +0000 (23:25 -0700)
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.

lib/autoconf/c.m4
tests/data/gnulib_std_gnu11_2020_08_17.m4

index 48bd49a3a3b1505cdafae4c0b0f13e6893558d51..42fbcbd09e3cdea3f7836f80f7f3cb86984a5fb4 100644 (file)
@@ -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
index da52cd6f4bf666ee1273ea60c5d81910288582c7..21f7cc7a1526fdc1a790aaa91b3476ee51c1d5ea 100644 (file)
@@ -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 = {