(set_image_of_range_1): In no-TRANSLATE case,
[gnulib.git] / m4 / realloc.m4
index b4afe93..7695e89 100644 (file)
@@ -1,33 +1,35 @@
-#serial 1
+#serial 6
 
 dnl From Jim Meyering.
 
 dnl From Jim Meyering.
-dnl Determine whether realloc accepts 0 as its first argument.
+dnl Determine whether realloc works when both arguments are 0.
 dnl If it doesn't, arrange to use the replacement function.
 dnl
 dnl If it doesn't, arrange to use the replacement function.
 dnl
-dnl If you use this macro in a package, you should
-dnl add the following two lines to acconfig.h:
-dnl  /* Define to rpl_realloc if the replacement function should be used.  */
-dnl  #undef realloc
-dnl
 
 
-AC_DEFUN(jm_FUNC_REALLOC,
+AC_DEFUN([jm_FUNC_REALLOC],
 [
 [
- AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc,
+ dnl xmalloc.c requires that this symbol be defined so it doesn't
+ dnl mistakenly use a broken realloc -- as it might if this test were omitted.
+ AC_DEFINE(HAVE_DONE_WORKING_REALLOC_CHECK, 1,
+           [Define if the realloc check has been performed. ])
+
+ AC_CACHE_CHECK([whether realloc(0,0) returns a non-NULL pointer],
+                jm_cv_func_working_realloc,
   [AC_TRY_RUN([
     char *realloc ();
     int
     main ()
     {
   [AC_TRY_RUN([
     char *realloc ();
     int
     main ()
     {
-      exit (realloc (0, 1) ? 0 : 1);
+      exit (realloc (0, 0) ? 0 : 1);
     }
          ],
         jm_cv_func_working_realloc=yes,
         jm_cv_func_working_realloc=no,
     }
          ],
         jm_cv_func_working_realloc=yes,
         jm_cv_func_working_realloc=no,
-        dnl When crosscompiling, assume realloc is broken.
+        dnl When crosscompiling, assume realloc(0,0) returns NULL.
         jm_cv_func_working_realloc=no)
   ])
   if test $jm_cv_func_working_realloc = no; then
         jm_cv_func_working_realloc=no)
   ])
   if test $jm_cv_func_working_realloc = no; then
-    LIBOBJS="$LIBOBJS realloc.o"
-    AC_DEFINE_UNQUOTED(realloc, rpl_realloc)
+    AC_LIBOBJ(realloc)
+    AC_DEFINE(realloc, rpl_realloc,
+      [Define to rpl_realloc if the replacement function should be used.])
   fi
 ])
   fi
 ])