GNU bug report logs -
#46540
28.0.50; Native-comp optimization bug
Previous Next
Reported by: Yu Han Quek <qythium <at> gmail.com>
Date: Mon, 15 Feb 2021 19:20:02 UTC
Severity: normal
Found in version 28.0.50
Done: Andrea Corallo <akrl <at> sdf.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:
> Yu Han Quek <qythium <at> gmail.com> writes:
>
>> The following function gives an incorrect result when compiled natively
>> with comp-speed >= 2.
>>
>> ;; -*- lexical-binding: t; -*-
>>
>> (defun native-comp-bug (body)
>> (let ((x (car body))
>> (y (cadr body)))
>> (unless (and
>> (natnump x)
>> (natnump y)
>> (<= x y))
>> (error ""))
>> x))
>
> Cool thanks for the reduced reproducer!
>
> I'll have a in the coming days.
>
> Andrea
Ok here a slightly simplified reproducer:
;; -*- lexical-binding: t; -*-
(defun native-comp-bug (x y)
(if (and (natnump x)
(natnump y)
(<= x y))
x
(error "")))
The following constrain insn clearly resolves in the wrong way:
(assume #(mvar 79140560 0 (integer 0 0)) (<= #(mvar 79118120 0 (integer 0 *)) #(mvar 79118988 3 (integer 0 *))))
Will come-up with a fix.
Andrea
This bug report was last modified 4 years and 92 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.