Subject: bug#46812: 28.0.50; [native-comp] (lambda (x) (if (= x 0.0) (floatp x) (error ""))) miscompiled

From: Pip Cet <[email-masked]>
Date: Sat, 27 Feb 2021 13:57:35 +0000

On Sat, Feb 27, 2021 at 1:54 PM Pip Cet <[email-masked]> wrote:
> In *scratch*, evaluate
>
> (funcall (native-compile `(lambda (x) (if (= x 0.0) (floatp x) (error "")))) 0)
>
> Expected Result:
>
> nil
>
> Actual Result:
>
> t
>
> [Note that this depends on lexical binding being in effect]

This arose from a discussion in bug#46670, and the relevant comment
with a fix (which unfortunately disables some correct optimizations in
addition to the incorrect ones) is at
https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-02/msg01630.html.

It's important we fix this correctly, but I'm predicting we won't.

Pip