bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#46540: 28.0.50; Native-comp optimization bug


From: Andrea Corallo
Subject: bug#46540: 28.0.50; Native-comp optimization bug
Date: Tue, 16 Feb 2021 21:43:29 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@gnu.org> writes:

> Yu Han Quek <qythium@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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]