Subject: 23.0.60; Bug in bytecomp.el: displaying warnings

From: Michael Heerdegen <[email-masked]>
Date: Mon, 8 Sep 2008 21:35:23 +0200

When pop-up-windows is nil, the byte compiler sometimes aborts with
the error message

  End of file during parsing

after displaying warnings, although the source file is ok.

You can reproduce this with CVS Gnu Emacs as follows:

1. Create a file test.el with the following contents:

    (setq a 1)

2. emacs -Q

3. M-: (setq pop-up-windows nil) RET

4. Byte compile test.el

The reason for the bug is an error in `byte-compile-from-buffer'. Its
definition looks like that:

(defun byte-compile-from-buffer (inbuffer &optional filename)
  ...
  (let ...
    (byte-compile-close-variables
     ...
     (displaying-byte-compile-warnings
      ...
      (with-current-buffer inbuffer
        ...
	(while ...
	 ...)
        ...)
      ...))
    ...))

If pop-up-windows is nil, and warnings have to be displayed,
`byte-compile-report-error' is called, and after that,
(current-buffer) will be the Compile Log buffer, and the current
buffer is not restored for further iterations of the while loop.