GNU bug report logs -
#67483
Wrong warning position given by the byte compiler for a malformed function
Previous Next
Full log
View this message in rfc822 format
Hello, Emacs
In any recent or semi-recent Emacs create a file bad-error-position.el
with these contents:
(defun foo ()
(let ((bar 'bar))
(if ("foo") ; Erroneous "function".
(baz))))))
.. Use M-x compile-defun to compile it. This gives an error message:
Buffer bad-error-position.el:2:4: Warning: `foo' is a malformed function
.. This position 2:4 is wrong; it is the position of the `let' symbol.
The correct position would be 3:6, the position of the `if' symbol.
#########################################################################
The cause of the error is in byte-optimize-form in
lisp/emacs-lisp/byte-opt.el. There, although the code recurses, it
fails to push the current form onto byte-compile-form-stack. Thus when
byte-compile-warn-x is called, there is nothing usable on that stack
inside the let form.
--
Alan Mackenzie (Nuremberg, Germany).
This bug report was last modified 1 year and 156 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.