Subject: bug#22288: 25.0.50; Incorrect line and column number in byte-compilation warning

From: Clément Pit--Claudel <[email-masked]>
Date: Fri, 1 Jan 2016 10:54:24 -0500

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

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Features:
(shadow sort gnus-util mail-extr emacsbug message dired format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils smex mc-mark-more
multiple-cursors-core rect ws-butler flyspell ispell ruler-mode
markdown-mode thingatpt noutline outline recentf tree-widget
company-math math-symbol-lists company-files company-oddmuse
company-keywords company-etags etags xref project company-gtags
company-dabbrev-code company-dabbrev company-capf company-cmake
company-xcode company-clang company-semantic company-eclim
company-template company-css company-nxml company-bbdb ido-ubiquitous s
ucs-normalize ido-completing-read+ cus-edit cus-start cus-load wid-edit
autoloads ido haskell-prettify flycheck-pos-tip pos-tip flycheck
find-func rx subr-x jka-compr let-alist proof-site proof-autoloads
pg-vars company agda2 smart-mode-line-dark-theme smart-mode-line
rich-minority page-break-lines diminish which-key which-func imenu
elapsed time eml-mode derived demo-mode dash always-make-directory
easy-escape easy-mmode delsel paren saveplace savehist xt-mouse
finder-inf edmacro kmacro advice tex-site cl-seq cl eieio eieio-core
cl-macs info package epg-config compatibility seq byte-opt gv compile
comint ansi-color ring bytecomp byte-compile cl-extra help-mode easymenu
cl-loaddefs pcase cl-lib cconv tangomod-dark-theme time-date mule-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 445068 11836)
 (symbols 48 34336 0)
 (miscs 40 91 485)
 (strings 32 84162 14046)
 (string-bytes 1 2172652)
 (vectors 16 49548)
 (vector-slots 8 1484645 186267)
 (floats 8 296 222)
 (intervals 56 3143 1078)
 (buffers 976 15)
 (heap 1024 39773 2180))