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

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

bug#74771: Native compilation bug with struct predicates when lexical bi


From: Andrea Corallo
Subject: bug#74771: Native compilation bug with struct predicates when lexical binding enabled (HEAD)
Date: Wed, 11 Dec 2024 17:29:34 -0500
User-agent: Gnus/5.13 (Gnus v5.13)

Eric Marsden <eric.marsden@risk-engineering.org> writes:

> Hi,
>
> With the attached source file, Emacs miscompiles the struct predicate such
> that a repeated call to the predicate on a non-struct object returns t.
> This occurs with current HEAD on Linux/AMD64, but not on the Emacs 30.0.92
> pretest. It does not occur when the lexical binding cookie is not present.
>
> % /opt/emacs/bin/emacs -Q --batch --eval "(load (native-compile 
> \"/tmp/bug.el\"))" -f run
> Loading 
> /home/emarsden/.emacs.d/eln-cache/31.0.50-c021c983/bug-59c4b27c-c70072f9.eln 
> (native compiled elisp)...
> Running in GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 
> 3.24.43, cairo version 1.18.2)
>  of 2024-12-09
> is? nil
> is? t   ;; expecting nil
> bar: 111
>
> ;;;   -*- lexical-binding: t -*-
> ;;
> ;; /opt/emacs/bin/emacs -Q --batch -L . --eval "(load (native-compile 
> \"/tmp/bug.el\"))" -f run
>
> (require 'cl-lib)
>
> (cl-defstruct foobles bar baz)
>
> (defun bug (foo)
>   (message "is? %s" (foobles-p foo))
>   (message "is? %s" (foobles-p foo))
>   (message "bar: %s" (foobles-bar foo)))
>
> (defun run ()
>   (message "Running in %s" (version))
>   (let ((foo "foo"))
>     (bug foo)))

Hi Eric,

thanks for the report, I'll look at this in the coming days.

  Andrea





reply via email to

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