Subject: bug#9109: 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: 24.0.50; Warning: assignment to free variable (unwind-protect)

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: 24.0.50; Warning: assignment to free variable (unwind-protect)
From: Roland Winkler <[email-masked]>
To: [email-masked]
Date: Sun, 17 Jul 2011 10:37:12 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

cat > foo.el <<EOF
(unwind-protect
    (let ((foo "foo"))
      (insert foo))
  (setq foo "bar"))
EOF

Compiling foo.el results in the warning:

  bar.el:2:12:Warning: assignment to free variable `foo'

The line number is wrong. The assignment to free variable `foo' happens
in the unwindform.

In GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2011-07-11 on regnitz