unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: <tomas@tuxteam.de>
To: "Ludwig, Mark" <ludwig.mark@siemens.com>
Cc: "Pascal J. Bourguignon" <pjb@informatimago.com>,
	"help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: Re: Compilation warnings of ELisp seem wrong and misleading
Date: Mon, 30 Mar 2015 18:59:36 +0200	[thread overview]
Message-ID: <20150330165935.GA11134@tuxteam.de> (raw)
In-Reply-To: <BC5672F8AD4C054BAF167C9801500D1A0101AAF4E1@USSLMMBX003.net.plm.eds.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, Mar 30, 2015 at 03:40:21PM +0000, Ludwig, Mark wrote:
> "Pascal J. Bourguignon" wrote:
> 
> > "Ludwig, Mark" <ludwig.mark@siemens.com> writes:
> > 
> > > Greetings,
> > >
> > > I've been using an ancient Emacs (19.29) on Solaris and finally
> > > got around to installing a current one (24.4).
> > >
> > > I find my custom Elisp generates warnings that seem pretty stupid.
> > > For example:
> > >
> > > emacs.el:255:10:Warning: reference to free variable `if'

Bizarre.

> For context, the "let*" is on line 239; the warning
> (mentioned above as being on line 255 column 10) is
> referring to the form after the comment "Make the
> substitution."  If you read the warnings carefully, you'll
> note that it warns about two different things on line 261,
> column 17.  That line is the one with the comment, 'Now it's
> "strlcpy" or whatever.'  Clearly, the byte-compiler is
> pretty confused....

At first blush, to me the following looks fishy:

>       (let* ((c1 (string-to-char to1))
> 	     (c2 (string-to-char to2))
> 	     (ans 0))

[...]

> 				 (cond ((= ans ?d)
> 					;; Skip over: "if" "(DSOK)" "dstat" "= ..." "()"
> 					(forward-sexp 5)
> 					)
> 
> 				       ((= ans ?e)
> 					;; Skip over:
> 					;; "if" "(dstat = ...)" "goto" "EXIT"
> 					(forward-sexp 4)
> 					)
> 
> 				       (if (not (looking-at ";"))
> 					   (error "First expected ';' not: \"%s\"" (buffer-substring (point)

Here: you're in the middle of a `cond' and the clause reads "(if ...)". I'd
expect `cond' to try to interpret "if" as a naked variable (granted, the error
message points at another place).

> 												     (progn (end-of-line 1)
> 													    (point)))))
> 				       (save-excursion
> 					 (goto-char if-pos) ; Go back to where we inserted "if"
> 					 (insert "{

...likewise the `save-excursion' here.

And so on.

HTH
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlUZgPcACgkQBcgs9XrR2kYznQCfa2FWYAipjWHgTbfS0lR4BV2L
TKAAniQtR5ddvmg1extvIKl5ZnkOeF1C
=KuKr
-----END PGP SIGNATURE-----



  reply	other threads:[~2015-03-30 16:59 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.3018.1427724507.31049.help-gnu-emacs@gnu.org>
2015-03-30 14:39 ` Compilation warnings of ELisp seem wrong and misleading Pascal J. Bourguignon
2015-03-30 15:40   ` Ludwig, Mark
2015-03-30 16:59     ` tomas [this message]
2015-03-30 19:09       ` Ludwig, Mark
     [not found]   ` <mailman.3032.1427730039.31049.help-gnu-emacs@gnu.org>
2015-03-30 17:08     ` Pascal J. Bourguignon
2015-03-31  0:53 ` Emanuel Berg
2015-04-01 11:45   ` Ludwig, Mark
2015-04-01 12:02     ` tomas
2015-04-02 10:20     ` Philipp Stephani
     [not found]   ` <mailman.3123.1427888711.31049.help-gnu-emacs@gnu.org>
2015-04-01 23:08     ` Emanuel Berg
2015-03-30 13:47 Ludwig, Mark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150330165935.GA11134@tuxteam.de \
    --to=tomas@tuxteam.de \
    --cc=help-gnu-emacs@gnu.org \
    --cc=ludwig.mark@siemens.com \
    --cc=pjb@informatimago.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).