Subject: bug#8774: closed (Re: bug#22288: 25.0.50; Incorrect line and column number in byte-compilation warning)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 22 Jan 2022 18:18:02 +0000

Your bug report

#22288: incorrect line numbers from byte-compile-file

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
22288: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22288
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#22288: 25.0.50; Incorrect line and column number in byte-compilation warning
From: Alan Mackenzie <[email-masked]>
To: Clément Pit--Claudel <[email-masked]>
Cc: [email-masked]
Date: Sat, 22 Jan 2022 18:16:58 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Everybody.

This bug has just been fixed in master by merging in branch
scratch/correct-warning-pos.

-- 
Alan Mackenzie (Nuremberg, Germany).

On Fri, Jan 01, 2016 at 10:54:24 -0500, Clément Pit--Claudel wrote:
> Hi all,

> The byte-compiler doesn't always report the right line and column numbers. For example for the following program in test.el:

> (defun test ()
>   (let (a))
>   a)

> Running M-x byte-compile-file RET test.el RET yields:

> > Compiling file /home/clement/test.el at Fri Jan  1 10:48:41 2016

> > In test:
> > test.el:2:9:Warning: reference to free variable ‘a’

> The correct warning would be

> > test.el:3:2:Warning: reference to free variable ‘a’

> Note that the following program gives the right error:

> (defun test ()
>   (let (b))
>   a)

> > test.el:3:3:Warning: reference to free variable ‘a’

> Although one might argue that it should be

> > test.el:3:2:Warning: reference to free variable ‘a’

> (that is, column 2, not 3) given that Emacs starts counting columns at 0.

> Cheers,
> Clément.

> In GNU Emacs 25.0.50.8 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
>  of 2015-12-29 built on clem-w50-mint
> Repository revision: a21bb238ce7bcc9c13a9cf66db77918304daa2fc
> Windowing system distributor 'The X.Org Foundation', version 11.0.11501000
> System Description:	Linux Mint 17.2 Rafaela

Subject: incorrect line numbers from byte-compile-file
From: Stephen Eglen <[email-masked]>
To: [email-masked]
Cc: Stephen Eglen <[email-masked]>
Date: Tue, 31 May 2011 15:33:21 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

With emacs -q, load the following into a file, test.el
----------------------------------------------------------------------
(defun fix-page-breaks ()
  "Fix page breaks in SAS 6 print files."
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (if (looking-at "\f") (delete-char 1))
    (replace-regexp "^\\(.+\\)\f" "\\1\n\f\n")
    (goto-char (point-min))
    (replace-regexp "^\f\\(.+\\)" "\f\n\\1")
    (goto-char (point-min))))

----------------------------------------------------------------------

then M-x byte-compile-file generates:

Compiling file /Users/stephen/txt/t/test.el at Tue May 31 15:28:08 2011

In fix-page-breaks:
test.el:6:28:Warning: `replace-regexp' used from Lisp code
That command is designed for interactive use only
test.el:7:6:Warning: `replace-regexp' used from Lisp code
That command is designed for interactive use only

The first error has the wrong line, although it has caught the two
problematic cases.

This is with emacs 23.3.1, but same behaviour seen on Emacs 24.0.50

Stephen

(emacs-version)
"GNU Emacs 23.3.1 (x86_64-apple-darwin10.6.0, NS apple-appkit-1038.35)
 of 2011-03-10 on teva.local"