[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18767: 24.4; incorrect byte-compile on arithmatic comparisons
From: |
Shigeru Fukaya |
Subject: |
bug#18767: 24.4; incorrect byte-compile on arithmatic comparisons |
Date: |
Sun, 19 Oct 2014 04:58:31 +0900 |
Hello,
byte-compile of arithmatic comparison operators on more than two
arguments is incorrect.
(disassemble (lambda () (< (a) (b) (c))))
byte code:
args: nil
0 constant a
1 call 0
2 constant b
3 call 0
4 lss
5 goto-if-nil-else-pop 1
8 constant b
9 call 0
10 constant c
11 call 0
12 lss
13:1 return
Functions a, b, c should be called once respectively if the function
has possibility of side effect.
But b may be called twice, and c may not be called.
I'm sorry for late report at the very time of release, but I noticed
just now.
Regards,
Shigeru