[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Nonsensical byte compiler warning.
From: |
Alan Mackenzie |
Subject: |
Re: Nonsensical byte compiler warning. |
Date: |
4 Apr 2007 22:08:55 +0200 |
Date: |
Wed, 4 Apr 2007 22:27:52 +0100 |
User-agent: |
Mutt/1.5.9i |
Hi, Markus!
On Wed, Apr 04, 2007 at 10:19:45AM +0200, Markus Triska wrote:
> David Kastrup <address@hidden> writes:
> > It points to c-end-of-defun, but the line number and described
> > called function are nonsensical.
> The line number is that of the first form of the function the
> questionable code is in. That makes sense, since the problem is in
> that function. It is *not* the call of char-before that's bogus. It's
> that its return value isn't used in the caller, c-end-of-defun. Any
> line of that function could contain the oversight. What line number
> would in your view make more sense to report?
As the current maintainer of cc-cmds.el, I haven't found this message at
all helpful. Here is the actual entry from my log of 2006-04-15, when I
first tried to crack the problem:
But I did get "While compiling c-end-of-defun in file
/home/acm/cc-mode-5.31.n/cc-cmds.el: ** `(char-after (1- (point)))' called
for
effect". Track this down: It's in c-end-of-defun. By commenting out bits
of
the function in a binary chop fashion, it's L1625, "(eq (char-before) ?\})".
I can't make head or tail of this. FIXME!!! POSTPONED.
It didn't occur to me at the time that char-after and char-before were
the same function.
> And yes, improving the optimiser to report `char-before' instead of
> `char-after' would be nice. I doubt that it would help anyone who
> can't find the problem with the current (quite good) message though.
As the "victim" of the situation, I would have found "char-before"
_exceptionally_ helpful. It might have urged me to look at the code more
carefully, rather than dismissing the message as a byte-compiler bug.
As I say, I don't find the current message helpful:
In c-end-of-defun:
cc-cmds.el:1612:4:Warning: value returned by `char-after' is not used
Taking the message bit by bit:
(i) "c-end-of-defun" _is_ helpful;
(ii) "1612:4" is positively unhelpful - at that location is "(interactive
"p")". Giving "1612:4" actively hinders debugging.
(iii) "char-after" doesn't exist in the source of c-end-of-defun;
(iv) The value returned by "char-before" _is_ used; it is explicitly
compared with "?\}".
I think this warning message is buggy. What it says ("value ... is not
used") is manifestly false - that value _is_ used; what isn't used is a
different value which is derived from that value.
What would a better message look like? I would suggest this:
In c-end-of-defun:
cc-cmds.el:1626:4:Warning: value returned from form is not used.
(where 1626 starts the `if' form, the most nested form for which the
warning holds). Or perhaps even better:
In c-end-of-defun:
cc-cmds.el:1647:57:Warning: value returned from form is not used.
Would it be easy to make this change to the byte compiler?
--
Alan Mackenzie (Ittersbach, Germany).
- Re: Nonsensical byte compiler warning., (continued)
- Re: Nonsensical byte compiler warning., Richard Stallman, 2007/04/05
- Re: Nonsensical byte compiler warning., Markus Triska, 2007/04/05
- Re: Nonsensical byte compiler warning., Richard Stallman, 2007/04/06
- Re: Nonsensical byte compiler warning., Chong Yidong, 2007/04/06
- Re: Nonsensical byte compiler warning., Markus Triska, 2007/04/08
- Re: Nonsensical byte compiler warning., Richard Stallman, 2007/04/09
- Re: Nonsensical byte compiler warning., Glenn Morris, 2007/04/09
- Re: Nonsensical byte compiler warning., Markus Triska, 2007/04/10
- Re: Nonsensical byte compiler warning., Glenn Morris, 2007/04/11
- Re: Nonsensical byte compiler warning., Chong Yidong, 2007/04/05
- Re: Nonsensical byte compiler warning.,
Alan Mackenzie <=
- Re: Nonsensical byte compiler warning., Markus Triska, 2007/04/04
- Re: Nonsensical byte compiler warning., Chong Yidong, 2007/04/04
- Re: Nonsensical byte compiler warning., Markus Triska, 2007/04/05
- Re: Nonsensical byte compiler warning., Kim F. Storm, 2007/04/07
- Re: Nonsensical byte compiler warning., Alan Mackenzie, 2007/04/08