-2011-05-05 Paul Eggert <eggert@cs.ucla.edu>
++2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
+ * Makefile.in (GNULIB_MODULES): Add stdarg, for va_copy.
+ * lib/stdarg.in.h, m4/stdarg.m4: New files, from gnulib.
+
+ * Makefile.in (GNULIB_TOOL_FLAG): Add --conditional-dependencies.
+ This new gnulib-tool option saves 'configure' the trouble of
+ checking for strtoull when strtoumax exists.
+
+ * configure.in (BITS_PER_LONG_LONG): New macro.
+
2011-05-05 Glenn Morris <rgm@gnu.org>
* Makefile.in (bootstrap-clean): Save config.log. (Bug#765)
-2011-05-03 Paul Eggert <eggert@cs.ucla.edu>
++2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * numbers.texi (Integer Basics): Large integers are treated as floats.
+
2011-04-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
* processes.texi (Synchronous Processes): Document the (:file
BLOCK_INPUT;
- pid = vfork ();
+ /* vfork, and prevent local vars from being clobbered by the vfork. */
- {
++ {
+ int volatile fd_error_volatile = fd_error;
+ int volatile fd_output_volatile = fd_output;
+ int volatile output_to_buffer_volatile = output_to_buffer;
+ unsigned char const **volatile new_argv_volatile = new_argv;
+
+ pid = vfork ();
- new_argv = new_argv_volatile;
+ fd_error = fd_error_volatile;
+ fd_output = fd_output_volatile;
+ output_to_buffer = output_to_buffer_volatile;
+ new_argv = new_argv_volatile;
+ }
if (pid == 0)
{
/* The type determines where the docstring is stored. */
/* Lisp_Subrs have a slot for it. */
- if (SUBRP (fun))
- {
- intptr_t negative_offset = - offset;
- XSUBR (fun)->doc = (char *) negative_offset;
- }
+ if (SUBRP (fun))
- XSUBR (fun)->doc = (char *) - offset;
++ {
++ intptr_t negative_offset = - offset;
++ XSUBR (fun)->doc = (char *) negative_offset;
++ }
/* If it's a lisp form, stick it in the form. */
else if (CONSP (fun))