+2011-06-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Be even smarter.
+ GCC was too smart for the previous patch. See
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00035.html>.
+
2011-06-18 Paul Eggert <eggert@cs.ucla.edu>
* lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Try to outsmart GCC.
[AC_RUN_IFELSE([AC_LANG_SOURCE(
[AC_INCLUDES_DEFAULT
int
-find_stack_direction (char *addr)
+find_stack_direction (int *addr, int depth)
{
- char dummy;
- return (! addr ? find_stack_direction (&dummy)
- : addr < &dummy ? 1 : -1);
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main (void)
+main (int argc, char **argv)
{
- return find_stack_direction (0) < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 0;
}])],
[ac_cv_c_stack_direction=1],
[ac_cv_c_stack_direction=-1],